Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
reeft_gps_test
/
REEFTintegrationLog
:
customer_maintain.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php //====================================================================================== // // Function: Maintain customer // // Programmer: JKJ // Date : 2025-04-28 // // Copyright Reeft A/S (c) - 2025 //====================================================================================== // https://easings.net/# // Notepad++ easteregges => https://community.notepad-plus-plus.org/topic/25803/an-updated-list-of-notepad-easter-eggs // https://animate.style/ //====================================================================================== // Get input //====================================================================================== if (isset($_REQUEST["timeStamp"])) { $timeStamp = $_REQUEST["timeStamp"]; } else { $timeStamp = ''; } //====================================================================================== // Set defaults //====================================================================================== $fromdate = date("Y-m-d",strtotime("-1 month")); $fromtime = date("H:i"); $todate = date("Y-m-d"); $totime = date("H:i",strtotime("+1 hour")); //====================================================================================== // Make line uppercase //====================================================================================== //====================================================================================== // General config //====================================================================================== include "config/config.php"; //====================================================================================== // Check if user is logged in? //====================================================================================== include "login_check.php"; //====================================================================================== // Get session variables //====================================================================================== include "include/getsession.php"; // include "include/uuid_create.php"; // include "include/generate_password_md5.php"; //====================================================================================== // Set language //====================================================================================== include "include/set_language.php"; //====================================================================================== // Set defaults //====================================================================================== // $pk_pk_key = $_SESSION['session_dft_pk_pk_key']; // $pk_keyCode = $_SESSION['session_dft_pk_keycode']; // $pk_keyName = $_SESSION['session_dft_pk_keyname']; //====================================================================================== ?> <!DOCTYPE html> <html lang="en"> <head> <title><?php echo $reeft_text0001 ?></title> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="description" content="REEFTvisual - Stoptime"> <meta name="author" content="REEFT A/S"> <link rel="icon" href="images/favicon/favicon.ico"> <!-- Bootstrap / jQuery --> <link href="css/bootstrap4.3.1/css/bootstrap.custom.min.css" rel="stylesheet"> <link href="css/bootstrap4.3.1/css/themes/bootstrap.custom.min.css" rel="stylesheet"> <link href="css/bootstrap4.3.1/css/normalize.css" rel="stylesheet" type="text/css"> <link href="css/sticky-footer.css" rel="stylesheet" type="text/css"> <!-- Custom styles for this template --> <link href="css/custom.css" rel="stylesheet"> <link href="css/style.css" rel="stylesheet"> <script src="css/fontawesome6.5.1/js/all.min.js"></script> <script src="css/fontawesome6.5.1/js/sharp-light.min.js"></script> <script src="css/fontawesome6.5.1/js/sharp-regular.min.js"></script> <script src="css/fontawesome6.5.1/js/sharp-solid.min.js"></script> <script src="css/fontawesome6.5.1/js/sharp-thin.min.js"></script> <link href="css/bootstrap_animation/css/animate4/animate.css" rel="stylesheet" type="text/css"> <!--<link href="javascript/chosen/chosen.css" rel="stylesheet" type="text/css">--> <link href="javascript/jquery-ui/jquery-ui.min.css" rel="stylesheet" type="text/css"/> <script src="javascript/jquery.js"></script> <script src="css/bootstrap4.3.1/js/popper.js"></script> <script src="css/bootstrap4.3.1/js/bootstrap.min.js"></script> <script src="javascript/jquery-ui/jquery-ui.min.js"></script> <script src="javascript/jquery.ui.touch-punch.min.js"></script> <link href="javascript/bgrins-spectrum/spectrum.css" rel="stylesheet" type="text/css"> <script src="javascript/bgrins-spectrum/spectrum.js"></script> <script src="javascript/moment.min.js"></script> <script src="javascript/moment-with-locales.min.js"></script> <script src="javascript/moment-duration-format.min.js"></script> <script src="javascript/number_format/jquery.number.min.js"></script> <script src="javascript/jquery.scrollTo.min.js"></script> <!-- Data tables start --> <link href="javascript/datatables.3.12/datatables.min.css" rel="stylesheet"> <script src="javascript/datatables.3.12/datatables.min.js"></script> <!-- Data tables end --> <script src="javascript/chosen/chosen.jquery.min.js" type="text/javascript"></script> <script src="javascript/viewer-master/dist/viewer.min.js"></script> <link href="javascript/viewer-master/dist/viewer.min.css" rel="stylesheet"> <script src="javascript/ajaxq/ajaxq.js"></script> <link id="scrollUpTheme" rel="stylesheet" href="javascript/scrollup-master/dist/css/themes/image.css"> <script src="javascript/scrollup-master/dist/jquery.scrollUp.js"></script> <script src="javascript/shortcut.js"></script> <script src="javascript/filesaver.js-master/dist/FileSaver.js"></script> <script src="javascript/_reeft_js/set_font_awesome_icon_type.js"></script> <script src="javascript/_reeft_js/date_convert.js"></script> <style> #REEFTvisual_data_processing { position: absolute; top: 15% !important; background: #ccc; border: 1px solid black; border-radius: 3px; font-weight: bold; width: 300px; } .btn-custom-wide { height:60px; width:210px; } .modal-work-dir-border { border-color: #7f8631 !important } .extend-search-field { width:300px !important; } .text-truncate-dt { max-width: 450px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* Ensure headers are not truncated */ th.text-truncate-dt { white-space: normal; /* Allow wrapping in the header */ overflow: visible; /* No truncation for header text */ text-overflow: clip; /* Ensure no ellipsis */ } .text-align-dt { text-align: center; } .overflow-class { width: 100%; /*height:700px;*/ max-height: calc(100vh - 283px); overflow-y: scroll; overflow-x: scroll; } .overflow-class-modal-body { width: 99%; max-height: calc(100vh - 283px); overflow-y: scroll; overflow-x: hidden; } .text-align-center-dt { text-align: center; } .text-align-left-dt { text-align: left; } .text-align-right-dt { text-align: right; } .modal-xxl { max-width: 90%; } .modal-xl { max-width: 50%; } .border-3 { border-width:3px !important; } td .hover-img { position:relative; } td .hover-img span { position:absolute; left:-9999px; top:-9999px; z-index:9999; } td:hover .hover-img span { top: 5px; left:0px; } .chosen-container-single { min-width: 100%; } .act-btn { margin-top: 0rem !important; } .table-fixed { table-layout: fixed; width: 100%; /* Ensure table fits within its container */ } </style> <script language="JavaScript"> //============================================================================= // Globals //============================================================================= var thisCurrentRow; var thisGlobalRowData; var thisGlobalTableData; var REEFT_DEFAULT_INTEGRATON_PRODUCT = '<?php echo $REEFT_DEFAULT_INTEGRATON_PRODUCT ?>'; var REEFT_DEFAULT_INTEGRATON_DESCRIPTION = '<?php echo $REEFT_DEFAULT_INTEGRATON_PRODUCT ?>'; var REEFT_DEFAULT_INTEGRATON_VERSION = '<?php echo $REEFT_DEFAULT_INTEGRATON_VERSION ?>'; var DFT_TINYFILEMANAGER_BASE_LINK = '<?php echo $DFT_TINYFILEMANAGER_BASE_LINK ?>'; // Dir variables var DFT_DIR_PATH = '<?php echo $DFT_DIR_PATH ?>'; var DFT_PROGRAM_DIR = '<?php echo $DFT_PROGRAM_DIR ?>'; var DFT_INPUT_DIR = '<?php echo $DFT_INPUT_DIR ?>'; var DFT_OUTPUT_DIR = '<?php echo $DFT_OUTPUT_DIR ?>'; var DFT_DONE_DIR = '<?php echo $DFT_DONE_DIR ?>'; var DFT_LOG_DIR = '<?php echo $DFT_LOG_DIR ?>'; var DFT_EXPORT_DONE_DIR = '<?php echo $DFT_EXPORT_DONE_DIR ?>'; var DFT_ERROR_DIR = '<?php echo $DFT_ERROR_DIR ?>'; var DFT_DIR_PATH_LOG_TEMPLATE = '<?php echo $DFT_DIR_PATH_LOG_TEMPLATE ?>'; var DFT_DB_LOG_TEMPLATE = '<?php echo $DFT_DB_LOG_TEMPLATE ?>'; var DFT_DIR_WHERE_TO_SAVE_DB_LOG = '<?php echo $DFT_DIR_WHERE_TO_SAVE_DB_LOG ?>'; // date variables var input_fromdate; var input_fromtime; var input_todate; var input_totime; // Save field var save_dataLine = ''; var save_cust_number = ''; var global_debug = 'N'; var global_GET_POST = 'POST'; // Add allowed Y/N var GLOBAL_ADD_ALLOWED = 'Y'; // Show group buttons var GLOBAL_SHOW_GROUP_BUTTONS = 'Y'; // Delete allowed Y/N var GLOBAL_DELETE_ALLOWED = 'Y'; // sortMode var GLOBAL_SORTMODE = 'DESC'; var jsonDataSave = {}; var DFT_DATE_DISPLAY_FORMAT = '<?php //echo $DFT_DATE_DISPLAY_FORMAT ?>'; var DFT_LANGUAGE = '<?php //echo $DFT_LANGUAGE ?>'; var GLOBAL_TOTALPAGESSTOPVALUE = 10; // Save field //var save_CFGNAM = ''; // http://markgoodyear.com/labs/scrollup/ $(function () { $.scrollUp({ scrollName: 'scrollUp', // Element ID //topDistance: '1800', // Distance from top before showing element (px) //topSpeed: 300, // Speed back to top (ms) scrollDistance: '300', // Distance from top before showing element (px) scrollSpeed: 300, // Speed back to top (ms) animation: 'fade', // Fade, slide, none animationInSpeed: 200, // Animation in speed (ms) animationOutSpeed: 200, // Animation out speed (ms) scrollText: false, //'Scroll to top', // Text for element activeOverlay: false, // Set CSS color to display scrollUp active point, e.g '#00FFFF' }); }); // https://animate.style/#javascript // You can also use a simple function to add the animations classes and remove them automatically: const animateCSS = (element, animation, prefix = 'animate__') => // We create a Promise and return it new Promise((resolve, reject) => { const animationName = `${prefix}${animation}`; const node = document.querySelector(element); node.classList.add(`${prefix}animated`, animationName); // When the animation ends, we clean the classes and resolve the Promise function handleAnimationEnd(event) { event.stopPropagation(); node.classList.remove(`${prefix}animated`, animationName); resolve('Animation ended'); doSomeThingAfterAnimationEnds(); } node.addEventListener('animationend', handleAnimationEnd, {once: true}); }); //============================================================================= // Get data //============================================================================= function getData( inputGetData ) { // Reset, show all if ( inputGetData == '*RESET' ) { inputGetData = ''; $('#input-fromdate').val(''); $('#input-fromtime').val(''); $('#input-todate').val(''); $('#input-totime').val(''); // Update input variables input_fromdate = $('#input-fromdate').val(); input_fromtime = $('#input-fromtime').val(); input_todate = $('#input-todate').val(); input_totime = $('#input-totime').val(); // Reset date buttons $('.btn-default-date-interval').removeClass('btn-success').addClass('btn-dark'); //Clear search thisGlobalTableData.search( '' ); } //Only initialize datatables once, else just draw it if ( $.fn.dataTable.isDataTable( '#REEFTvisual_data' ) ) { console.log('1'); thisGlobalTableData.draw(); // fire in the hole } else { console.log('2'); setDataTables(); } } //============================================================================= // Set datatables //============================================================================= function setDataTables() { // Delete allowed? if ( GLOBAL_DELETE_ALLOWED == 'Y' ) { var show_the_delete_button = true; } else { var show_the_delete_button = false; } // Get the current date line input_fromdate = $('#input-fromdate').val(); input_fromtime = $('#input-fromtime').val(); input_todate = $('#input-todate').val(); input_totime = $('#input-totime').val(); input_logType = $('#input-logType').val(); input_logCode = $('#input-logCode').val(); input_logPgm = $('#input-logPgm').val(); input_clientID = $('#input-clientID').val(); input_dataLine = $('#input-dataLine').val(); input_group_search = $('#input-default-search-group').val(); input_active_search = $('#input-default-search-active').val(); parmData = ''; // Get the current date line input_logCode = $('#input-logCode').val(); new $('#REEFTvisual_data').DataTable({ "ajax": { "url": 'customer_maintain_get.php', "type": global_GET_POST, "data": function (parmData) { // Add custom parameters to the ajax call parmData.logCode = input_logCode; // From date parmData.fromdate = input_fromdate.trim(); parmData.fromtime = input_fromtime; parmData.fromtime = input_fromtime; // To date parmData.todate = input_todate.trim(); parmData.totime = input_totime; // Log type and code parmData.logType = input_logType; parmData.logCode = input_logCode; parmData.logPgm = input_logPgm; parmData.clientID = input_clientID; parmData.dataLine = input_dataLine; parmData.group_search = input_group_search; parmData.active_search = input_active_search; }, dataSrc: function (jsonData) { //return data // var rpyCMPNO = jsonData.header.rpyCMPNO; // var rpyCMPNO_Name = jsonData.header.rpyCMPNO_Name; // var rpyFile_name = jsonData.header.rpyFile_name; // var rpyFile_description = jsonData.header.rpyFile_description; // var recordsTotal = jsonData.header.recordsTotal; // var rpyTableRecordsFound = jsonData.header.rpyTableRecordsFound; // var recordsTotal = jsonData.header.recordsTotal; // var recordsTotalFormat = jsonData.header.recordsTotalFormat; // var returnCode = jsonData.header.returnCode; // var returnMsg = jsonData.header.returnMsg; // var entries_found = jsonData.header.entries_found; // var response_sec = jsonData.header.response_sec; // sql_where = jsonData.header.sql_where ; // sql = jsonData.header.sql ; var rpyCMPNO = ''; var rpyCMPNO_Name = ''; var rpyFile_name = ''; var rpyFile_description = ''; var rpyTableRecordsFound = 0; var recordsTotal = jsonData.recordsTotal; var recordsTotalFormat = jsonData.recordsTotal; var returnCode = jsonData.header.returnCode; var returnMsg = jsonData.header.returnMsg; var entries_found = jsonData.recordsTotal; var response_sec = jsonData.header.execution_time_sec; sql_where = ''; sql = ''; // Show SQL? if ( $('#input-show-sql').val() == 'Y' ) { $('#input-sql').text( sql ); } // Show load time $('#text-total-records-found').html( rpyTableRecordsFound ); $('#text-total-records-found').html( recordsTotalFormat ); $('#load-time-from-database').html('<?php echo $reeft_text0055 ?>: ' + entries_found + ' (' + response_sec + ')'); // Set Company and file information if ( rpyFile_name != '' ) { $('#data-company-information').html( '<span title="' + rpyFile_name + ' - ' + rpyFile_description + '">' + rpyCMPNO_Name + '</span>' ).css('font-size','1.3em'); } // Init button line fields var HTMLlineButtons = ''; var HTMLlineButtonsModal = ''; var selectedButtonClass = 'btn-dark'; //===================================================================================== // Create group buttons, only if wanted //===================================================================================== if ( GLOBAL_SHOW_GROUP_BUTTONS == 'Y' ) { $.each( jsonData.data_group, function( index, object ){ var buttonLine = object.cust_group; var buttonCount = object.cust_group_count; selectedButtonClass = 'btn-dark'; var selectButtonLineID = 'select-button-line-id-' + buttonLine; var selectButtonLineIDmodal = 'select-button-line-id-modal-' + buttonLine; HTMLlineButtons += '<button type="button" onclick="doGroupSearch(\'' + buttonLine + '\')" style="cursor:default" id="' + selectButtonLineID + '" class="btn ' + selectedButtonClass + ' select-button-line btn-sm mr-1 mb-1">' + buttonLine + ' (<b>' + buttonCount + '</b>)' + '</button>' HTMLlineButtonsModal += '<button type="button" onclick="selectGroupValueModal(\'' + buttonLine + '\')" style="width:100px" id="' + selectButtonLineIDmodal + '" class="select-button-line-modal btn btn-primary btn-sm mr-1 mb-1">' + buttonLine + '</button>' }); // Reset HTMLlineButtons += '<button type="button" onclick="doGroupSearch(\'' + '' + '\')" style="cursor:default" id="' + 'RESET' + '" class="btn ' + 'btn-warning' + ' select-button-line btn-sm mr-1 mb-1">' + '<b>' + 'RESET' + '</b>' + '</button>' $('#data-result-button-group').html(HTMLlineButtons); $('#data-result-button-group-modal').html(HTMLlineButtonsModal); // Get group search_group = $('#input-default-search-group').val(); if ( search_group != '' ) { $('#select-button-line-id-' + search_group).removeClass('btn-dark').addClass('btn-success'); } } //===================================================================================== //===================================================================================== // Active - set buttons //===================================================================================== if ( input_active_search == '' ) { input_active_search_id = 'X'; } else { input_active_search_id = input_active_search; } // Remove all green $('.active-search-button-class' ).removeClass('btn-success').addClass('btn-dark'); $('#button-select-cust-active-' + input_active_search_id ).removeClass('btn-dark').addClass('btn-success'); //$('#dt-search-0').removeClass('extend-search-field'); //===================================================================================== return jsonData.data; } }, searching: true, processing: true, serverSide: true, responsive: { details: { renderer: function (api, rowIdx, columns) { // Create a debug report for the current row var debugInfo = '<table class="table table-sm">'; debugInfo += '<thead><tr><th>Column</th><th>Visible</th><th>Data</th></tr></thead><tbody>'; // Iterate over each column to provide visibility info $.each(columns, function (i, col) { debugInfo += `<tr> <td>${col.title}</td> <td>${col.hidden ? 'Hidden' : 'Visible'}</td> <td>${col.data}</td> </tr>`; }); debugInfo += '</tbody></table>'; return debugInfo; } } }, fixedHeader: true, order: [[ 4, "asc" ],[ 2, "asc" ]], // Control the order on the screen colReorder: { order: [4, 2, 3, 0, 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 40, 42] }, columnDefs: [ // Make sure the sorts toggle asc/desc and not asc/desc/no-sort { orderSequence: ['asc', 'desc'], targets: ['_all'] }, { "targets": [ 40 ], "visible": show_the_delete_button, "searchable": false, "orderable": false }, { "targets": [ 39,40,41,42 ], "visible": true, "searchable": false, "orderable": false }, { "targets": [ 0, 5, 6, 7, 9, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37 ,38 ], "visible": false, "searchable": false, "orderable": false }, { "targets": [ 3,5 ], "max-width": '120px', "className": "text-truncate-dt" //class to mimic text-truncate in dt }, { "targets": [ 1,4,7,8,9,10,11 ], "className": "text-align-dt" } ], columns: [ { data: "pk_customer" }, // 0 { data: "cust_active", // 1 render: function (data, type, row, meta) { if ( row.cust_active == 1 ) { cust_active_text = '<span style="width:80px" class="badge badge-success font-weight-bold p-2"><?php echo $reeft_text0006 ?></span>'; } if ( row.cust_active == 0 ) { cust_active_text = '<span style="width:80px" class="badge badge-danger font-weight-bold p-2"><?php echo $reeft_text0007 ?></span>'; } return cust_active_text; } }, { data: "cust_number", // 2 render: function (data, type, row, meta) { var cust_number_text = '<span onclick="copyToClipBoard(\'' + row.pk_customer + '\')" title="Click to copy pk_customer: ' + row.pk_customer + ' to clipboard">' + row.cust_number + '</span>'; return cust_number_text; } }, { data: "cust_name" }, // 3 { data: "cust_group" }, // 4 { data: "product" }, // 5 { data: "description" }, // 6 { data: "integration_version" }, // 7 { data: "fileformat_ext_file" }, // 8 { data: "fileformat_exportterminationfile" }, // 9 { data: "fileformat_numberdecimalseparator", // 10 render: function (data, type, row, meta) { var text_text = '<span class="font-weight-bold" style="font-size:1.2em">' + row.fileformat_numberdecimalseparator + '</span>'; return text_text; } }, { data: "fileformat_separator", // 11 render: function (data, type, row, meta) { var text_text = '<span style="font-size:1.2em">' + row.fileformat_separator + '</span>'; return text_text; } }, { data: "fileformat_codepage" }, // 12 { data: "program_dir" }, // 13 { data: "input_dir" }, // 14 { data: "output_dir" }, // 15 { data: "error_dir" }, // 16 { data: "done_dir" }, // 17 { data: "log_dir" }, // 18 { data: "export_done_dir" }, // 19 { data: "import_functions" }, // 20 { data: "export_functions" }, // 21 { data: "client_id" }, // 22 { data: "client_secret" }, // 23 { data: "organizationId" }, // 24 { data: "create_user" }, // 25 { data: "create_timestamp" }, // 26 { data: "update_user" }, // 27 { data: "update_timestamp" }, // 28 { data: "company_logo_url" }, // 29 { data: "number_of_exports" }, // 30 { data: "number_of_imports" }, // 31 { data: "ERPname" }, // 32 { data: "ERPdescription" }, // 33 { data: "ERPurl" }, // 34 { data: "json_default_path" }, // 35 { data: "json_gps_default_path" }, // 36 { data: "name" }, // 37 { data: "group" }, // 38 { data: null, // 39 render: function (data, type, row, meta) { //console.table( data ); // Create edit button var myButton = '<button id="edt-' + row.pk_customer + '" class="edit-btn btn btn-primary btn-block text-truncate xmr-1"><?php echo $reeft_button_show_details ?></button>'; return myButton; } }, // 40 { data: null, render: function (data, type, row, meta) { // Create delete button var myButton = '<button id="dlt-' + '-' + row.pk_customer + '" class="delete-btn btn btn-danger text-truncate btn-block xmr-1"><?php echo $reeft_button_delete ?></button>'; return myButton; } }, // 41 { data: null, render: function (data, type, row, meta) { // Create log button var myButton = '<button id="log-' + '-' + row.pk_customer + '" class="log-btn btn btn-primary text-truncate btn-block xmr-1"><?php echo $reeft_button_show_log ?></button>'; return myButton; } }, // 42 { data: null, render: function (data, type, row, meta) { // Create de/re-activate button var showDeact = 'd-none'; var showReact = 'd-none'; if ( row.cust_active == 1 ) { showDeact = ''; } else { showReact = ''; } var myButton = '<button id="deact' + '-' + row.pk_customer + '" class="act-btn btn btn-danger text-truncate btn-block xmr-1 ' + showDeact + '" onclick="customerActivate(\'' + row.pk_customer + '\', \'*deactivate\')"><?php echo $reeft_button_deactivate ?></button>'+'<button id="react' + '-' + row.pk_customer + '" class="act-btn btn btn-success text-truncate btn-block xmr-1 ' + showReact + '" onclick="customerActivate(\'' + row.pk_customer + '\', \'*reactivate\')"><?php echo $reeft_button_reactivate ?></button>'; return myButton; } } ], pageLength: 10, lengthChange: true, layout: { top1Start: { search: { placeholder: '<?php echo $reeft_datatable_Search_text ?>', } }, top1End: [{ pageLength: { menu: [10, 25, 50, 100 ] } }], topStart: { info:{ } }, topEnd: { paging: { buttons: 8, firstLast: true, boundaryNumbers: true, } }, bottomStart: { buttons: [ { extend: 'copyHtml5', text: '<img src="images/copy.png" height="25"> Copy to Clipboard', titleAttr: 'Copy', title: 'REEFT Integration - Webservice Data Export - Copy to clipboard', exportOptions: { // Fields to export (https://datatables.net/pk_key/button/csv#Examples) columns: [0,1,2,3,4,5,6] } }, { extend: 'excelHtml5', text: '<img src="images/microsoft_excel_logo.png" height="25"> Excel', titleAttr: 'Excel', title: function(){ return 'REEFT Integration - Webservice Data Export'; //return 'REEFT Integration - Webservice Data Export (' + sql_where + ')'; }, messageTop : function(){ return 'SQL: ' + sql; }, filename: function(){ var p_id = moment().format('YYYY-MM-DD HH.mm.ss'); return 'REEFT Integration - Webservice Data Export - ' + p_id; }, exportOptions: { // Fields to export (https://datatables.net/pk_key/button/csv#Examples) columns: [0,1,2,3,4,5,6] } }, { extend: 'pdfHtml5', text: '<img src="images/pdf_logo.png" height="25"> PDF', titleAttr: 'PDF', orientation: 'landscape', title: 'REEFT Integration - Webservice Data Export - PDF', filename: function(){ var p_id = moment().format('YYYY-MM-DD HH.mm.ss'); return 'REEFT Integration - Webservice Data Export - PDF - ' + p_id; }, exportOptions: { // Fields to export (https://datatables.net/pk_key/button/csv#Examples) columns: [0,1,2,3,4,5,6], modifier: { page: 'all' } } } ] }, bottomEnd: { paging: { buttons: 12, firstLast: true, boundaryNumbers: true } } }, language: { "decimal": ",", "thousands": ".", "emptyTable": "<?php echo $reeft_datatable_emptyTable ?>", "info": "<?php echo $reeft_datatable_Info ?>", "infoEmpty": "<?php echo $reeft_datatable_InfoEmpty ?>", "InfoFiltered": "<?php echo $reeft_datatable_InfoFiltered ?>", "infoPostFix": "", "lengthMenu": "<?php echo $reeft_datatable_LengthMenu ?>", "loadingRecords": "", "processing": "<?php echo $reeft_datatable_Processing ?>", "search": "<?php echo $reeft_datatable_Search ?>", "zeroRecords": "<?php echo $reeft_datatable_ZeroRecords ?>", "paginate": { "first": "<?php echo $reeft_datatable_First ?>", "last": "<?php echo $reeft_datatable_Last ?>", "next": "<?php echo $reeft_datatable_Next ?>", "previous": "<?php echo $reeft_datatable_Previous ?>" }, "aria": { "orderable": "Order by this column", "orderableReverse": "Reverse order this column" } }, "preDrawCallback": function(settings) { }, "drawCallback": function (settings) { var prv_search = $('#dt-search-0').val(); // Save search // if ( prv_search != '' ) { // $('#working-message-text').append( '<span onclick="restoreSearch(\'' + prv_search + '\')">' + prv_search + '</span> / ' ); // } //$('#dt-search-0').focus().select(); $('#dt-search-0').focus(); // // Output the data for the visible rows to the browser's console // var api = this.api(); // console.log(api.rows({ page: 'current' }).data()); // Get the table's total width // var api = this.api(); // var tableWidth = $(api.table().node()).width(); // var containerWidth = $(api.table().container()).width(); // console.log("Table Width: " + tableWidth + "px"); // console.log("Container Width: " + containerWidth + "px"); }, "rowCallback": function(row, data, index) { }, "initComplete": function () { } }); //============================================================================= // Setup the data to be able to update the table without reloading from the server //============================================================================= // Save the table in a global variable thisGlobalTableData = $('#REEFTvisual_data').DataTable(); // Handle click on "Edit" button $('#REEFTvisual_data tbody').on('click', '.edit-btn', function() { thisCurrentRow = $(this).closest('tr'); thisGlobalRowData = thisGlobalTableData.row(thisCurrentRow).data(); // Debug // console.log("edit"); // console.log(thisGlobalRowData); //console.log(thisCurrentRow); dataChange(); }); // Handle click on "Log" button $('#REEFTvisual_data tbody').on('click', '.log-btn', function() { thisCurrentRow = $(this).closest('tr'); thisGlobalRowData = thisGlobalTableData.row(thisCurrentRow).data(); // Debug // console.log("log"); // console.log(thisGlobalRowData); //console.log(thisCurrentRow); showLog(); }); // Handle click on "Delete" button $('#REEFTvisual_data tbody').on('click', '.delete-btn', function() { thisCurrentRow = $(this).closest('tr'); thisGlobalRowData = thisGlobalTableData.row(thisCurrentRow).data(); // Debug // console.log(thisGlobalRowData); // console.log(thisCurrentRow); dataDeleteConfirm(); }); // Handle click on "Delete" button $('#REEFTvisual_data tbody').on('click', '#add-button', function() { // thisCurrentRow = $(this).closest('tr'); // thisGlobalRowData = thisGlobalTableData.row(thisCurrentRow).data(); // // Debug // // console.log(thisGlobalRowData); // // console.log(thisCurrentRow); // dataDeleteConfirm(); }); //============================================================================= //============================================================================= // Place curor in search field - the wrapper id is provided by datatables - debug it! //============================================================================= $('#REEFTvisual_data_wrapper div.dt-search .dt-input').focus(); //============================================================================= } //============================================================================= // Reason addd -- not used //============================================================================= function dataAdd ( input_pk_customer ) { $('#input-mode').val('*add'); resetModalInputFields(); setModalInputDefaultFields(); // Reset save field save_cust_number = ''; save_pk_customer = ''; // Reset modal message resetModalMessage(); // Remove key fields readonly //$('#modal-input-timeStamp').removeAttr('readonly','readonly'); $('#data-result-button-group-modal').removeClass('d-none'); // Load customer data - NO $('#input-load-customer-data').val('Y'); $('#input-customer-already-exists').val('N'); // Make selected fields read-only //$('#modal-input-timeStamp').removeAttr('readonly','readonly'); //$('.read-only-class').attr('readonly','readonly'); $('#button-selectExportterminationfile-no').removeClass('btn-success').addClass('btn-primary'); $('#button-selectExportterminationfile-yes').removeClass('btn-success').addClass('btn-primary'); $('.button-extension--modal-class').removeClass('btn-success').addClass('btn-primary'); $('.fileformat_numberdecimalseparator-class').removeClass('btn-success').addClass('btn-primary'); $('.fileformat_separator-class').removeClass('btn-success').addClass('btn-primary'); $('.fileformat_codepage-class').removeClass('btn-success').addClass('btn-primary'); $('#modal-input-pk_customer').attr('readonly','readonly'); $('#modal-input-cust_active').attr('readonly','readonly'); $('#modal-input-pk_customer').attr('readonly','readonly'); $('#modal-input-cust_active').attr('readonly','readonly'); $('#modal-input-fileformat_ext_file').attr('readonly','readonly'); $('#modal-input-fileformat_exportterminationfile').attr('readonly','readonly'); $('#modal-input-fileformat_numberdecimalseparator').attr('readonly','readonly'); $('#modal-input-fileformat_separator').attr('readonly','readonly'); $('#modal-input-fileformat_codepage').attr('readonly','readonly'); $('#modal-input-pk_customer').attr('readonly','readonly'); $('#modal-input-create_user').attr('readonly','readonly'); $('#modal-input-create_timestamp').attr('readonly','readonly'); $('#modal-input-update_user').attr('readonly','readonly'); $('#modal-input-update_timestamp').attr('readonly','readonly'); $('#modal-input-cust_number').removeAttr('readonly','readonly'); // Show input fields $('#main-modal-input-fields').removeClass('d-none'); $('#main-modal-dir-work-place').addClass('d-none'); // Reset change checker $('#input-change-made-somewhere').val( 'N' ); $('#input-work-place-shown').val('*FIELDS'); $('#modal-data-not-saved-warning-wrapper').addClass('d-none'); // Make save button blue again $('#modal-save-button').removeClass('btn-success').addClass('btn-primary'); $('#modal-save-button-only').removeClass('btn-success').addClass('btn-primary'); // Show modal $('#customer_maintainModal').modal('show'); } //============================================================================= // Show details //============================================================================= function dataChange( ) { var row = thisGlobalRowData; // Save in fields var pk_customer = row["pk_customer"]; var cust_active = row["cust_active"]; var cust_number = row["cust_number"]; var cust_name = row["cust_name"]; var cust_group = row["cust_group"]; var product = row["product"]; var description = row["description"]; var integration_version = row["integration_version"]; var fileformat_ext_file = row["fileformat_ext_file"]; var fileformat_exportterminationfile = row["fileformat_exportterminationfile"]; var fileformat_numberdecimalseparator = row["fileformat_numberdecimalseparator"]; var fileformat_separator = row["fileformat_separator"]; var fileformat_codepage = row["fileformat_codepage"]; var program_dir = row["program_dir"]; var input_dir = row["input_dir"]; var output_dir = row["output_dir"]; var error_dir = row["error_dir"]; var done_dir = row["done_dir"]; var log_dir = row["log_dir"]; var export_done_dir = row["export_done_dir"]; var import_functions = row["import_functions"]; var export_functions = row["export_functions"]; var client_id = row["client_id"]; var client_secret = row["client_secret"]; var organizationId = row["organizationId"]; var create_user = row["create_user"]; var create_timestamp = row["create_timestamp"]; var update_user = row["update_user"]; var update_timestamp = row["update_timestamp"]; var company_logo_url = row["company_logo_url"]; var number_of_exports = row["number_of_exports"]; var number_of_imports = row["number_of_imports"]; var ERPname = row["ERPname"]; var ERPdescription = row["ERPdescription"]; var ERPurl = row["ERPurl"]; var json_default_path = row["json_default_path"]; var json_gps_default_path = row["json_gps_default_path"]; var counter = row["counter"]; $('#input-mode').val('*update'); // Load customer data $('#input-load-customer-data').val('N'); $('#input-customer-already-exists').val('N'); // save_cust_number = timeStamp; save_pk_customer = pk_customer; save_cust_number = cust_number; // Set active /inactive selectActiveInactive( cust_active ); // Set group value selectGroupValueModal( cust_group ); // Set extension selectExtension( fileformat_ext_file ); // Set Fileformat export termination file selectExportterminationfile( fileformat_exportterminationfile ); // Set Fileformat export termination file selectNumberDecimalSeparator( fileformat_numberdecimalseparator, '' ); // Set Fileformat export termination file selectFileFormatSeparator( fileformat_separator, '' ); // Set Fileformat code page selectCodePage( fileformat_codepage ); // Load customer data - NO $('#input-load-customer-data').val('N'); // Move to input fields $('#modal-input-counter').val(counter); $('#modal-input-pk_customer').val(pk_customer); $('#modal-input-cust_active').val(cust_active); $('#modal-input-cust_number').val(cust_number); $('#modal-input-cust_name').val(cust_name); $('#modal-input-cust_group').val(cust_group); $('#modal-input-product').val(product); $('#modal-input-description').val(description); $('#modal-input-integration_version').val(integration_version); $('#modal-input-fileformat_ext_file').val(fileformat_ext_file); $('#modal-input-fileformat_exportterminationfile').val(fileformat_exportterminationfile); $('#modal-input-fileformat_numberdecimalseparator').val(fileformat_numberdecimalseparator); $('#modal-input-fileformat_separator').val(fileformat_separator); $('#modal-input-fileformat_codepage').val(fileformat_codepage); $('#modal-input-program_dir').val(program_dir); $('#modal-input-program_dir_org').val('<?php echo $DFT_PROGRAM_DIR ?>'); $('#modal-input-input_dir').val(input_dir); $('#modal-input-input_dir_org').val('<?php echo $DFT_INPUT_DIR ?>'); $('#modal-input-output_dir').val(output_dir); $('#modal-input-output_dir_org').val('<?php echo $DFT_OUTPUT_DIR ?>'); $('#modal-input-error_dir').val(error_dir); $('#modal-input-error_dir_org').val('<?php echo $DFT_ERROR_DIR ?>'); $('#modal-input-done_dir').val(done_dir); $('#modal-input-done_dir_org').val('<?php echo $DFT_DONE_DIR ?>'); $('#modal-input-log_dir').val(log_dir); $('#modal-input-log_dir_org').val('<?php echo $DFT_LOG_DIR ?>'); $('#modal-input-export_done_dir').val(export_done_dir); $('#modal-input-export_done_dir_org').val('<?php echo $DFT_EXPORT_DONE_DIR ?>'); $('#modal-input-import_functions').val(import_functions); $('#modal-input-export_functions').val(export_functions); $('#modal-input-client_id').val(client_id); $('#modal-input-client_secret').val(client_secret); $('#modal-input-organizationId').val(organizationId); $('#modal-input-create_user').val(create_user); $('#modal-input-create_timestamp').val(create_timestamp); $('#modal-input-update_user').val(update_user); $('#modal-input-update_timestamp').val(update_timestamp); $('#modal-input-company_logo_url').val(company_logo_url); $('#modal-input-number_of_exports').val(number_of_exports); $('#modal-input-number_of_imports').val(number_of_imports); $('#modal-input-ERPname').val(ERPname); $('#modal-input-ERPdescription').val(ERPdescription); $('#modal-input-ERPurl').val(ERPurl); $('#modal-input-json_default_path').val(json_default_path); $('#modal-input-json_gps_default_path').val(json_gps_default_path); // Make key fields readonly $('#modal-input-timeStamp').attr('readonly','readonly'); $('#data-result-button-group-modal').removeClass('d-none'); $('#modal-input-pk_customer').attr('readonly','readonly'); $('#modal-input-cust_active').attr('readonly','readonly'); $('#modal-input-fileformat_ext_file').attr('readonly','readonly'); $('#modal-input-fileformat_exportterminationfile').attr('readonly','readonly'); $('#modal-input-fileformat_numberdecimalseparator').attr('readonly','readonly'); $('#modal-input-fileformat_separator').attr('readonly','readonly'); $('#modal-input-fileformat_codepage').attr('readonly','readonly'); // DIRs $('.read-only-dir-class').attr('readonly','readonly'); $('#modal-input-create_user').attr('readonly','readonly'); $('#modal-input-create_timestamp').attr('readonly','readonly'); $('#modal-input-update_user').attr('readonly','readonly'); $('#modal-input-update_timestamp').attr('readonly','readonly'); $('#modal-input-cust_number').attr('readonly','readonly'); // Create link to tinyfilemanager wrkField = DFT_TINYFILEMANAGER_BASE_LINK.replace( "%1",cust_number ); var tinyLink = '<button class="btn btn-dark btn-sm" type="button" onclick="popUpCenter(\'' + wrkField + '\')"><?php echo $reeft_text0195 ?></button>'; $('#modal-tinyfilemanager-button').html( tinyLink ); // Reset modal message resetModalMessage(); // Set text to work with fields $('#main-modal-input-fields').removeClass('d-none'); $('#main-modal-dir-work-place').addClass('d-none'); $('#button-show-dir-work-place').html('<?php echo $reeft_text0208 ?>') $('#modal-data-not-saved-warning-wrapper').addClass('d-none'); // Reset change checker $('#input-change-made-somewhere').val( 'N' ); $('#input-work-place-shown').val('*FIELDS'); // Make save button blue again $('#modal-save-button').removeClass('btn-success').addClass('btn-primary'); $('#modal-save-button-only').removeClass('btn-success').addClass('btn-primary'); // Show modal $('#customer_maintainModal').modal('show'); } //============================================================================= // Show log //============================================================================= function showLog( ) { var row = thisGlobalRowData; // Save in fields var pk_customer = row["pk_customer"]; var cust_active = row["cust_active"]; var cust_number = row["cust_number"]; var cust_name = row["cust_name"]; var cust_group = row["cust_group"]; var product = row["product"]; var description = row["description"]; var integration_version = row["integration_version"]; var fileformat_ext_file = row["fileformat_ext_file"]; var fileformat_exportterminationfile = row["fileformat_exportterminationfile"]; var fileformat_numberdecimalseparator = row["fileformat_numberdecimalseparator"]; var fileformat_separator = row["fileformat_separator"]; var fileformat_codepage = row["fileformat_codepage"]; var program_dir = row["program_dir"]; var input_dir = row["input_dir"]; var output_dir = row["output_dir"]; var error_dir = row["error_dir"]; var done_dir = row["done_dir"]; var log_dir = row["log_dir"]; var export_done_dir = row["export_done_dir"]; var import_functions = row["import_functions"]; var export_functions = row["export_functions"]; var client_id = row["client_id"]; var client_secret = row["client_secret"]; var organizationId = row["organizationId"]; var create_user = row["create_user"]; var create_timestamp = row["create_timestamp"]; var update_user = row["update_user"]; var update_timestamp = row["update_timestamp"]; var company_logo_url = row["company_logo_url"]; var number_of_exports = row["number_of_exports"]; var number_of_imports = row["number_of_imports"]; var ERPname = row["ERPname"]; var ERPdescription = row["ERPdescription"]; var ERPurl = row["ERPurl"]; var json_default_path = row["json_default_path"]; var json_gps_default_path = row["json_gps_default_path"]; var counter = row["counter"]; var logUrl = "customerLog_maintain.php?cust_number="+cust_number+"&cust_name="+cust_name; popUpFull(logUrl,'','',''); } //============================================================================= // Save //============================================================================= function dataSave( saveAction ) { // Reset modal message resetModalMessage(); // Check content of fields // Customer already exists if ( $('#input-customer-already-exists').val() == 'Y' ) { $('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0087 ?>' ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-cust_number').trigger('focus'); return false; } // Customer number if ( $('#modal-input-cust_number').val() == '' ) { $('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0007 ?>' ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-cust_number').trigger('focus'); return false; } // Customer name if ( $('#modal-input-cust_name').val() == '' ) { $('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0008 ?>' ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-cust_name').trigger('focus'); return false; } // Customer group if ( $('#modal-input-cust_group').val() == '' || $('#modal-input-cust_group').val() == '0' ) { $('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0006 ?>' ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-cust_group').trigger('focus'); return false; } // Fileformat extension file if ( $('#modal-input-fileformat_ext_file').val() == '' ) { $('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0009 ?>' ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-fileformat_ext_file').trigger('focus'); return false; } // Fileformat export termination file if ( $('#modal-input-fileformat_exportterminationfile').val() == '' ) { $('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0010 ?>' ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-fileformat_exportterminationfile').trigger('focus'); return false; } // Decimal separator if ( $('#modal-input-fileformat_numberdecimalseparator').val() == '' ) { $('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0011 ?>' ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-fileformat_numberdecimalseparator').trigger('focus'); return false; } // Field separator if ( $('#modal-input-fileformat_separator').val() == '' ) { $('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0012 ?>' ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-fileformat_separator').trigger('focus'); return false; } // Code page if ( $('#modal-input-fileformat_codepage').val() == '' ) { $('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0013 ?>' ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-fileformat_codepage').trigger('focus'); return false; } // Input dir if ( $('#modal-input-input_dir').val() == '' ) { replaceValue = '<?php echo $reeft_text0237 ?>'; wrkMessage = '<?php echo $reeft_error0096 ?>'; wrkMessage = wrkMessage.replace("%1",replaceValue ); $('#modal-message').addClass('border-bottom').html( wrkMessage ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-input_dir').trigger('focus'); return false; } // Output dir if ( $('#modal-input-output_dir').val() == '' ) { replaceValue = '<?php echo $reeft_text0236 ?>'; wrkMessage = '<?php echo $reeft_error0096 ?>'; wrkMessage = wrkMessage.replace("%1",replaceValue ); $('#modal-message').addClass('border-bottom').html( wrkMessage ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-output_dir').trigger('focus'); return false; } // Done dir if ( $('#modal-input-done_dir').val() == '' ) { replaceValue = '<?php echo $reeft_text0234 ?>'; wrkMessage = '<?php echo $reeft_error0096 ?>'; wrkMessage = wrkMessage.replace("%1",replaceValue ); $('#modal-message').addClass('border-bottom').html( wrkMessage ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-done_dir').trigger('focus'); return false; } // Error dir if ( $('#modal-input-error_dir').val() == '' ) { replaceValue = '<?php echo $reeft_text0235 ?>'; wrkMessage = '<?php echo $reeft_error0096 ?>'; wrkMessage = wrkMessage.replace("%1",replaceValue ); $('#modal-message').addClass('border-bottom').html( wrkMessage ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-error_dir').trigger('focus'); return false; } // Log dir if ( $('#modal-input-log_dir').val() == '' ) { replaceValue = '<?php echo $reeft_text0233 ?>'; wrkMessage = '<?php echo $reeft_error0096 ?>'; wrkMessage = wrkMessage.replace("%1",replaceValue ); $('#modal-message').addClass('border-bottom').html( wrkMessage ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-log_dir').trigger('focus'); return false; } // Export done dir if ( $('#modal-input-export_done_dir').val() == '' ) { replaceValue = '<?php echo $reeft_text0204 ?>'; wrkMessage = '<?php echo $reeft_error0096 ?>'; wrkMessage = wrkMessage.replace("%1",replaceValue ); $('#modal-message').addClass('border-bottom').html( wrkMessage ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-export_done_dir').trigger('focus'); return false; } // Program dir if ( $('#modal-input-program_dir').val() == '' ) { replaceValue = '<?php echo $reeft_text0238 ?>'; wrkMessage = '<?php echo $reeft_error0096 ?>'; wrkMessage = wrkMessage.replace("%1",replaceValue ); $('#modal-message').addClass('border-bottom').html( wrkMessage ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-program_dir').trigger('focus'); return false; } // Client secret if ( $('#modal-input-client_secret').val() == '' ) { $('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0015 ?>' ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-client_secret').trigger('focus'); return false; } // Client id if ( $('#modal-input-client_id').val() == '' ) { $('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0016 ?>' ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-client_id').trigger('focus'); return false; } // Organization Id if ( $('#modal-input-organizationId').val() == '' ) { $('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0017 ?>' ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-organizationId').trigger('focus'); return false; } // ERP name if ( $('#modal-input-ERPname').val() == '' ) { $('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0018 ?>' ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-ERPname').trigger('focus'); return false; } // ERP description if ( $('#modal-input-ERPdescription').val() == '' ) { $('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0019 ?>' ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); $('#modal-input-ERPdescription').trigger('focus'); return false; } // If input just check of input fields, tanks for now... if ( saveAction == '*JUST_CHECK' ) { return; } // alert('Done...') // return; var mode = $('#input-mode').val(); //=============================================================================== // Remove # if any //=============================================================================== // Setup remove string let mySaveString; // var myWorkField = $('#modal-input-DESCP1').val(); // myWorkField = myWorkField.replace("#", ""); // $('#modal-input-DESCP1').val( myWorkField ); // var myWorkField = $('#modal-input-DESCP2').val(); // myWorkField = myWorkField.replace("#", ""); // $('#modal-input-DESCP2').val( myWorkField ); // var myWorkField = $('#modal-input-TOK_ENV').val(); // myWorkField = myWorkField.replace(",", "."); // myWorkField = parseFloat(myWorkField).toFixed(3).toString(); // $('#modal-input-CHRMIN').val( myWorkField ); // var myWorkField = $('#modal-input-TOK_ENVCOL').val(); // myWorkField = myWorkField.replace(",", "."); // myWorkField = parseFloat(myWorkField).toFixed(3).toString(); // $('#modal-input-CHRMAX').val( myWorkField ); // var myWorkField = $('#modal-input-TOK_JASSVR').val(); // myWorkField = myWorkField.replace(",", "."); // myWorkField = parseFloat(myWorkField).toFixed(0).toString(); // $('#modal-input-DBGVAL').val( myWorkField ); //=============================================================================== // Update logs fields //=============================================================================== if ( mode == '*update' ) { var currentTime = moment().format('YYYY-MM-DD HH:mm:ss'); currentTime = REEFT_format_date( currentTime, DFT_DATE_DISPLAY_FORMAT ) $('#modal-input-update_user').val('<?php echo "$session_dft_username" ?>'); $('#modal-input-update_timestamp').val(currentTime); } //=============================================================================== var cust_name = $('#modal-input-cust_name').val(); cust_name = cust_name.replace(/\'/g,"''"); $('#modal-input-cust_name').val(cust_name); // Make array and json var myData = $('#dataForm').find('input, select, textarea').serializeArray(); var result = JSON.stringify(myData); var result = encodeURIComponent( result ); // console.log(result); // console.log(myData); // return; var parmData = 'data=' + result + '&mode=' + mode ; $.ajax({ url: "customer_maintain_save.php", type: "POST", data: parmData, dataType: "json", cache: false, }) .done(function( jsonData ) { //================================================================= // START - Update the table without doing a server reload // Only update //================================================================= if ( mode == '*update' ) { //event.preventDefault(); // Debug // console.log(myGlobalRowData[0]); // console.log(myGlobalRowData[1]); // console.log(myGlobalRowData[2]); // console.log(thisGlobalRowData); // console.table(myGlobalTableData); // Get the data for the "Change/Delete button", so we do not need to create it again // myChangeButtonData = myGlobalRowData[6]; // myDeleteButtonData = myGlobalRowData[7]; //============================================== // Use this if you want to update the whole row //============================================== // myGlobalTableData.row(myCurrentRow).data([ // modal_input_HUB_WEBNAM, // modal_input_LSTCAL, // modal_input_DESCP1, // modal_input_DESCP2, // modal_input_COUNT, // modal_input_SERTYP, // myChangeButtonData, // myDeleteButtonData, // modal_input_DESCP1, // modal_input_DESCP2 // ]) // .draw(false) // ; //======================================================= // Use this if you want to update one or more table cells //======================================================= //order: [4, 2, 3, 0, 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39] // console.log(thisGlobalTableData.cell(thisCurrentRow, 0 ).data()) // console.log(thisGlobalTableData.cell(thisCurrentRow, 1 ).data()) // console.log(thisGlobalTableData.cell(thisCurrentRow, 3 ).data()) // console.log(thisGlobalTableData) // console.log(thisCurrentRow) thisGlobalTableData.cell(thisCurrentRow, 0 ).data( $('#modal-input-pk_customer').val() ); thisGlobalTableData.cell(thisCurrentRow, 1 ).data( $('#modal-input-cust_active').val() ); thisGlobalTableData.cell(thisCurrentRow, 2 ).data( $('#modal-input-cust_number').val() ); thisGlobalTableData.cell(thisCurrentRow, 3 ).data( $('#modal-input-cust_name').val() ); thisGlobalTableData.cell(thisCurrentRow, 4 ).data( $('#modal-input-cust_group').val() ); thisGlobalTableData.cell(thisCurrentRow, 5 ).data( $('#modal-input-product').val() ); thisGlobalTableData.cell(thisCurrentRow, 6 ).data( $('#modal-input-description').val() ); thisGlobalTableData.cell(thisCurrentRow, 7 ).data( $('#modal-input-integration_version').val() ); thisGlobalTableData.cell(thisCurrentRow, 8 ).data( $('#modal-input-fileformat_ext_file').val() ); thisGlobalTableData.cell(thisCurrentRow, 9 ).data( $('#modal-input-fileformat_exportterminationfile').val() ); thisGlobalTableData.cell(thisCurrentRow, 10 ).data( $('#modal-input-fileformat_numberdecimalseparator').val() ); thisGlobalTableData.cell(thisCurrentRow, 11 ).data( $('#modal-input-fileformat_separator').val() ); thisGlobalTableData.cell(thisCurrentRow, 12 ).data( $('#modal-input-fileformat_codepage').val() ); thisGlobalTableData.cell(thisCurrentRow, 13 ).data( $('#modal-input-program_dir').val() ); thisGlobalTableData.cell(thisCurrentRow, 14 ).data( $('#modal-input-input_dir').val() ); thisGlobalTableData.cell(thisCurrentRow, 15 ).data( $('#modal-input-output_dir').val() ); thisGlobalTableData.cell(thisCurrentRow, 16 ).data( $('#modal-input-error_dir').val() ); thisGlobalTableData.cell(thisCurrentRow, 17 ).data( $('#modal-input-done_dir').val() ); thisGlobalTableData.cell(thisCurrentRow, 18 ).data( $('#modal-input-log_dir').val() ); thisGlobalTableData.cell(thisCurrentRow, 19 ).data( $('#modal-input-export_done_dir').val() ); thisGlobalTableData.cell(thisCurrentRow, 20 ).data( $('#modal-input-import_functions').val() ); thisGlobalTableData.cell(thisCurrentRow, 21 ).data( $('#modal-input-export_functions').val() ); thisGlobalTableData.cell(thisCurrentRow, 22 ).data( $('#modal-input-client_id').val() ); thisGlobalTableData.cell(thisCurrentRow, 23 ).data( $('#modal-input-client_secret').val() ); thisGlobalTableData.cell(thisCurrentRow, 24 ).data( $('#modal-input-organizationId').val() ); thisGlobalTableData.cell(thisCurrentRow, 25 ).data( $('#modal-input-create_user').val() ); thisGlobalTableData.cell(thisCurrentRow, 26 ).data( $('#modal-input-create_timestamp').val() ); thisGlobalTableData.cell(thisCurrentRow, 27 ).data( $('#modal-input-update_user').val() ); thisGlobalTableData.cell(thisCurrentRow, 28 ).data( $('#modal-input-update_timestamp').val() ); thisGlobalTableData.cell(thisCurrentRow, 29 ).data( $('#modal-input-company_logo_url').val() ); thisGlobalTableData.cell(thisCurrentRow, 30 ).data( $('#modal-input-number_of_exports').val() ); thisGlobalTableData.cell(thisCurrentRow, 31 ).data( $('#modal-input-number_of_imports').val() ); thisGlobalTableData.cell(thisCurrentRow, 32 ).data( $('#modal-input-ERPname').val() ); thisGlobalTableData.cell(thisCurrentRow, 33 ).data( $('#modal-input-ERPdescription').val() ); thisGlobalTableData.cell(thisCurrentRow, 34 ).data( $('#modal-input-ERPurl').val() ); thisGlobalTableData.cell(thisCurrentRow, 35 ).data( $('#modal-input-json_default_path').val() ); thisGlobalTableData.cell(thisCurrentRow, 36 ).data( $('#modal-input-json_gps_default_path').val() ); //thisGlobalTableData = $('#REEFTvisual_data').DataTable(); thisGlobalTableData.cell(thisCurrentRow).draw(false); // Show new color // var TOK_APPRLS_TEXT = '<div style="display:block;margin:auto;width:25px;height:25px; background-color:' + $('#modal-input-TOK_APPRLS').val() + '"> </div>'; // thisGlobalTableData.cell(thisCurrentRow, 5 ).data( TOK_APPRLS_TEXT ); // //thisGlobalTableData.cell(thisCurrentRow, 5 ).data( TOK_APPRLS_TEXT ).draw(false); // if ( $('#modal-input-TOK_MACHIN').val() == 'N' ) { // TOK_MACHIN_text = '<?php //echo $reeft_NO ?>'; // } else { // TOK_MACHIN_text = '<?php //echo $reeft_YES ?>'; // } // thisGlobalTableData.cell(thisCurrentRow, 9 ).data( TOK_MACHIN_text ); } //================================================================= // END - Update the table without doing a server reload //================================================================= //================================================================= // Close the modal, only if wanted //================================================================= if ( saveAction == '*SAVE_AND_CLOSE' ) { $('#customer_maintainModal').modal('hide'); } if ( saveAction == '*SAVE_ONLY' ) { $('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_text0192 ?>' ); } //================================================================= // Only when add //================================================================= if ( mode == '*add' ) { // var myButtonID = 'select-button-line-id-' + $('#input-timeStamp').val(); // $('#' + myButtonID).click(); getData(''); } }) .always(function( jsonData ) { if ( saveAction == '*SAVE_AND_CLOSE' ) { resetModalInputFields(); } // Load customer data if ( $('#input-load-customer-data').val() == 'Y' ) { getCustomerData(); } $('#input-load-customer-data').val('N'); }) .fail(function( xhr, ajaxOptions, thrownError ) { console.log('I am failed..'); console.log( thrownError ); console.log( xhr ); }); } //============================================================================= // Delete confirm //============================================================================= function dataDeleteConfirm( ) { $('#input-mode').val('*delete'); var row = thisGlobalRowData; var input_cust_number = row["cust_number"]; $('#confirm-delete-cust_number').val(input_cust_number); // Create confirm text $('#confirm-delete-text-cust_number').html(input_cust_number); $('#confirm-delete-modal-message').addClass('d-none').html( ' ' ); $('#customer_confirmDeleteModal').modal('show'); } //============================================================================= // Delete //============================================================================= function dataDeleteExec() { // Reset modal message resetModalMessage(); var mode = $('#input-mode').val(); // Make array and json var myData = $('#dataForm-delete').find('input, select').serializeArray(); var result = JSON.stringify(myData); // console.log(result); // console.log(myData); //return; var parmData = 'data=' + result + '&mode=' + mode ; $.ajax({ url: "customer_maintain_save.php", type: "POST", data: parmData, dataType: "json", cache: false, }) .done(function( jsonData ) { var returnCode = jsonData.header.returnCode; var returnMsg = jsonData.header.returnMsg; var entries_found = jsonData.header.entries_found; if ( returnCode == '00') { $('#customer_confirmDeleteModal').modal('hide'); resetModalInputFields(); getData(''); } else { var errorTxt = '<?php echo $reeft_error0099 ?>' + ' ' + returnMsg; $('#confirm-delete-modal-message').removeClass('d-none').html( errorTxt ); } }) .always(function( jsonData ) { }) .fail(function( xhr, ajaxOptions, thrownError ) { console.log('I am failed..'); console.log( xhr ); console.log( thrownError ); }); } //============================================================================= // Re or Deactivate customer //============================================================================= function customerActivate( customerKey, mode ) { var parmData = 'customerKey=' + customerKey + '&mode=' + mode ; $.ajax({ url: "customer_maintain_activate.php", type: "POST", data: parmData, dataType: "json", cache: false, }) .done(function( jsonData ) { var returnCode = jsonData.header.returnCode; var returnMsg = jsonData.header.returnMsg; var entries_found = jsonData.header.entries_found; if ( returnCode == '00') { getData(''); } else { console.log("returnCode " + returnCode + " returnMsg " + returnMsg); } }) .always(function( jsonData ) { }) .fail(function( xhr, ajaxOptions, thrownError ) { console.log('I am failed..'); console.log( xhr ); console.log( thrownError ); }); } //============================================================================= // Check if userid exists //============================================================================= function checkDataExists() { var input_cust_number = $('#modal-input-cust_number').val(); // Name contains invalid chars if ( input_cust_number == '' ) { resetDefaultDirPath(); return; } // Check if data is correct isValid = cleanAndValidate(input_cust_number); // Name contains invalid chars if ( isValid === false ) { $('#modal-message').html('<?php echo $reeft_error0014 ?>'); resetDefaultDirPath(); return; } // If update, then the "orginal" code is ok if ( $('#input-mode').val() == '*update' ) { if ( input_cust_number == save_cust_number ) { return; } } var parmData = 'cust_number=' + input_cust_number ; $.ajax({ url: "customer_maintain_exists_get_data.php", type: "GET", data: parmData, dataType: "json", cache: false, }) .done(function( jsonData ) { var returnCode = jsonData.header.returnCode; var returnMsg = jsonData.header.returnMsg; var entries_found = jsonData.header.entries_found; if ( returnCode == '00') { $('#modal-message').addClass(' border-bottom').html( '<?php echo $reeft_error0087 ?>' ); $('#modal-save-button').addClass('disabled').prop("disabled", true); $('#modal-save-button-only').addClass('disabled').prop("disabled", true); //$('#modal-input-cust_number').trigger('focus'); $('#input-customer-already-exists').val('Y'); resetDefaultDirPath(); return false; } else { // Reset modal message resetModalMessage(); $('#input-customer-already-exists').val('N'); createDefaultDirPath(); } }) .always(function( jsonData ) { }) .fail(function( xhr, ajaxOptions, thrownError ) { console.log('I am failed..'); console.log( xhr ); }); } //============================================================================= // Reset modal input fields //============================================================================= function resetModalInputFields() { $('#modal-input-pk_customer').val('0'); $('#modal-input-cust_active').val(''); $('#modal-input-cust_number').val(''); $('#modal-input-cust_name').val(''); $('#modal-input-cust_group').val(''); $('#modal-input-product').val(''); $('#modal-input-description').val(''); $('#modal-input-integration_version').val(''); $('#modal-input-fileformat_ext_file').val(''); $('#modal-input-fileformat_exportterminationfile').val(''); $('#modal-input-fileformat_numberdecimalseparator').val(''); $('#modal-input-fileformat_separator').val(''); $('#modal-input-fileformat_codepage').val(''); $('#modal-input-program_dir').val(''); $('#modal-input-input_dir').val(''); $('#modal-input-output_dir').val(''); $('#modal-input-error_dir').val(''); $('#modal-input-done_dir').val(''); $('#modal-input-log_dir').val(''); $('#modal-input-export_done_dir').val(''); $('#modal-input-import_functions').val(''); $('#modal-input-export_functions').val(''); $('#modal-input-client_id').val(''); $('#modal-input-client_secret').val(''); $('#modal-input-organizationId').val(''); $('#modal-input-create_user').val(''); $('#modal-input-create_timestamp').val(''); $('#modal-input-update_user').val(''); $('#modal-input-update_timestamp').val(''); $('#modal-input-company_logo_url').val(''); $('#modal-input-number_of_exports').val(''); $('#modal-input-number_of_imports').val(''); $('#modal-input-ERPname').val(''); $('#modal-input-ERPdescription').val(''); $('#modal-input-ERPurl').val(''); $('#modal-input-json_default_path').val(''); $('#modal-input-json_gps_default_path').val(''); //$('#input-mode').val(''); } //============================================================================= // Set default modal input fields //============================================================================= function setModalInputDefaultFields() { $('#modal-input-cust_active').val('1'); $('#button-selectActiveInactive-yes').removeClass('btn-primary').addClass('btn-success'); $('#button-selectActiveInactive-no').removeClass('btn-danger').addClass('btn-primary'); $('.select-button-line-modal').removeClass('btn-success').addClass('btn-primary'); var currentTime = moment().format('YYYY-MM-DD HH:mm:ss'); currentTime = REEFT_format_date( currentTime, DFT_DATE_DISPLAY_FORMAT ) $('#modal-input-create_user').val('<?php echo "$session_dft_username"; ?>'); $('#modal-input-create_timestamp').val( currentTime ); $('#modal-input-product').val( REEFT_DEFAULT_INTEGRATON_PRODUCT ); $('#modal-input-description').val( REEFT_DEFAULT_INTEGRATON_DESCRIPTION ); $('#modal-input-integration_version').val( REEFT_DEFAULT_INTEGRATON_VERSION ); } //============================================================================= // Log off //============================================================================= function signoff() { window.location.href = "logout.php"; } //============================================================================= // Load page //============================================================================= function loadPage(url, p1, p2, p3) { window.location.href = url; } //============================================================================= // Reset modal message //============================================================================= function resetModalMessage() { // Reset //$('#modal-message').removeClass('p-2 font-weight-bold border border-danger rounded bg-light').html( ' ' ); $('#modal-message').removeClass('border-bottom').html( ' ' ); $('#modal-save-button').removeClass('disabled').prop("disabled", false); $('#modal-save-button-only').removeClass('disabled').prop("disabled", false); } //============================================================================= // Full screen popup //============================================================================= function popUpFull( url, p1, p2, p3 ) { var winname = 'win_' + url; params = 'width='+screen.width; params += ', height='+screen.height; params += ', top=0, left=0' params += ', fullscreen=yes'; params += ',scrollbars=1'; overview_win = window.open(url,winname, params); if (window.focus) {overview_win.focus();} return false; } //============================================================================= // screen popup - center //============================================================================= function popUpCenter(url, p1, p2, p3) { var v1_w = screen.availWidth; var v1_h = screen.availHeight; if ( parseInt(v1_w) > 1800 ) { v1_w = 1800; v1_h = v1_h - 200; v1_center = v1_w/0.8; } // Center popup as good as possible var left = (screen.width - v1_w) / 2; var top = (screen.height - v1_h) / 4; var winname = 'win_' + url; params = 'width='+v1_w; params += ', height='+v1_h; params += ', top=' + top + ', left=' + left; params += ', fullscreen=yes'; params += ',scrollbars=1'; overview_win = window.open(url,winname, params); if (window.focus) {overview_win.focus();} return false; } //============================================================================= // screen popup - center - bigger //============================================================================= function popUpCenterBig(url, p1, p2, p3) { var v1_w = screen.availWidth; var v1_h = screen.availHeight; // Get 25% v1_w_pct = v1_w * 0.25; v1_w_new = v1_w - v1_w_pct; if ( v1_w_new < 1 ) { v1_w_new = 1800; } v1_w = v1_w_new; v1_h = v1_h - 200; v1_center = v1_w/0.8; // Center popup as good as possible var left = (screen.width - v1_w) / 2; var top = (screen.height - v1_h) / 4; var winname = 'win_' + url; params = 'width='+v1_w; params += ', height='+v1_h; params += ', top=' + top + ', left=' + left; params += ', fullscreen=yes'; params += ',scrollbars=1'; overview_win2 = window.open(url, winname, params); if (overview_win2 && !overview_win2.closed) { overview_win2.focus(); } } //============================================================================= // Popup top //============================================================================= function popUpTop(url, p1, p2, p3) { var winname = 'win_' + url; w = 650; h = 750; params = 'width='+w; params += ', height='+h; params += ', top=0, left=0' params += ', fullscreen=no'; params += ',scrollbars=1'; overview_win = window.open(url,winname, params); if (window.focus) {overview_win.focus();} return false; } //============================================================================= // Select line modal //============================================================================= function selectGroupValueModal( inputLine ) { $('#modal-input-cust_group').val( inputLine ); var selectButtonLineID = 'select-button-line-id-modal-' + inputLine; $('.select-button-line-modal').removeClass('btn-success').addClass('btn-primary'); $('#' + selectButtonLineID).removeClass('btn-primary').addClass('btn-success'); // Place cursor in next field? //$('#modal-input-cust_number').trigger('focus'); resetModalMessage(); triggerBlur(); } //============================================================================= // Close modal //============================================================================= function closeModal() { $('#customer_maintainModal').modal('hide'); } //============================================================================= // Scroll to something //============================================================================= function scrollToSomething( target ) { //$.scrollTo('0',3200); thisID = '#' + target; $.scrollTo( thisID, 1000); } //============================================================================= // copy to clipboard //============================================================================= function copyToClipBoard( input_text_to_copy ) { $('#myInput').val( input_text_to_copy ); // Get the text field var copyText = document.getElementById("myInput"); // Select the text field copyText.select(); copyText.setSelectionRange(0, 99999); // For mobile devices // Copy the text inside the text field navigator.clipboard.writeText(copyText.value); // Alert the copied text alert( copyText.value + ' ' + 'copied to clipboard' ); } //============================================================================= // Set months //============================================================================= function setDefaultMonths() { $('#default-month-buttons').html(''); var monthButtons = ''; var numberOfMonths = 6; curMdrVar = numberOfMonths; for (let step = 0; step < numberOfMonths; step++) { curMdrVar = parseInt( curMdrVar ) - 1; //curMdrVar = step; var defaultMonth = moment().subtract(curMdrVar, 'month').format("MM"); var monthName = setDefaultMonthName( defaultMonth ); createDefaultMonthButton(curMdrVar, defaultMonth, monthName); } } //============================================================================= // Create button //============================================================================= function createDefaultMonthButton( number, month, monthName ) { var thisId = 'default-button-' + month; var currentYear = getDefaultYearCalc( number, month, monthName ); var monthButton = '<button type="button" class="btn-default-date-interval btn btn-dark mr-1 mb-1" id="' + thisId + '" onclick="setDefaultFromToDateCalc(\'' + number + '\',\'' + month + '\')">' + monthName + ' ' + currentYear + '</button>' $('#default-month-buttons').append(monthButton); } //============================================================================= // Set month names //============================================================================= function setDefaultMonthName( month ) { var monthName = ''; if ( month == '01') { monthName = '<?php echo $reeft_month_01 ?>'; } else if ( month == '02') { monthName = '<?php echo $reeft_month_02 ?>'; } else if ( month == '03') { monthName = '<?php echo $reeft_month_03 ?>'; } else if ( month == '04') { monthName = '<?php echo $reeft_month_04 ?>'; } else if ( month == '05') { monthName = '<?php echo $reeft_month_05 ?>'; } else if ( month == '06') { monthName = '<?php echo $reeft_month_06 ?>'; } else if ( month == '07') { monthName = '<?php echo $reeft_month_07 ?>'; } else if ( month == '08') { monthName = '<?php echo $reeft_month_08 ?>'; } else if ( month == '09') { monthName = '<?php echo $reeft_month_09 ?>'; } else if ( month == '10') { monthName = '<?php echo $reeft_month_10 ?>'; } else if ( month == '11') { monthName = '<?php echo $reeft_month_11 ?>'; } else if ( month == '12') { monthName = '<?php echo $reeft_month_12 ?>'; } else { monthName = 'Unknown: ' + month; } return monthName; } //============================================================================= // Set default from 7 to date //============================================================================= function getDefaultYearCalc( sub_month, month ) { // Calcualte date intervals var defaultFromDate = moment().subtract( parseInt(sub_month), 'month').format("YYYY-MM-01" ); var defaultToDate = moment().add(1, 'day').format("YYYY-MM-DD"); var defaultToDate = moment().subtract( parseInt(sub_month), 'month').endOf('month').format('YYYY-MM-DD'); var currentYear = moment(defaultFromDate).format('YYYY'); //console.log(defaultFromDate + ' ' + defaultToDate + ' ' + currentYear); return currentYear; } //============================================================================= // Set default from 7 to date //============================================================================= function setDefaultFromToDateCalc( sub_month, month ) { // Calcualte date intervals var defaultFromDate = moment().subtract( parseInt(sub_month), 'month').format("YYYY-MM-01" ); var defaultToDate = moment().add(1, 'day').format("YYYY-MM-DD"); var defaultToDate = moment().subtract( parseInt(sub_month), 'month').endOf('month').format('YYYY-MM-DD'); // Move to input fields $('#input-fromdate').val( defaultFromDate ); $('#input-todate').val( defaultToDate ); $('#input-fromtime').val( '00:00' ); $('#input-totime').val( '23:59' ); var thisId = 'default-button-' + month; $('.btn-default-date-interval').removeClass('btn-success').addClass('btn-dark'); $('#' + thisId).removeClass('btn-dark').addClass('btn-success'); // Click get button //$('#button-call-import-log-overview').trigger('click'); $('#updateButton').trigger('click'); } //============================================================================= // Group search //============================================================================= function doGroupSearch( group ) { $('#input-default-search-group').val( group ); $('#updateButton').trigger('click'); } //============================================================================= // Cust active search //============================================================================= function doActiveSearch( active ) { $('#input-default-search-active').val( active ); $('#updateButton').trigger('click'); } //============================================================================= // Show more search fields //============================================================================= function showMoreSearchFields() { var input_showMoreSearchFields = $('#input-showMoreSearchFields').val(); // Show or not show? if ( input_showMoreSearchFields == 'Y' ) { $('#misc-1-search-fields').addClass('d-none'); $('#misc-2-search-fields').addClass('d-none'); $('#input-showMoreSearchFields').val('N'); $('#button-showMoreSearchFields').removeClass('btn-success').addClass('btn-primary').html('More...'); $('#input-fromdate').focus(); } else { $('#misc-1-search-fields').removeClass('d-none'); $('#misc-2-search-fields').removeClass('d-none'); $('#input-showMoreSearchFields').val('Y'); $('#button-showMoreSearchFields').removeClass('btn-primary').addClass('btn-success').html('Less...'); $('#input-logType').focus(); } } //============================================================================= // Restore search field //============================================================================= function restoreSearch( search_string ) { $('#dt-search-0').val( search_string).focus().select(); } //============================================================================= // Show SQL //============================================================================= function showSQL() { $('#input-sql').text( sql ); $('#input-sql-col').removeClass('text-right').addClass('font-weight-bold mb-2'); $('#input-show-sql').val('Y'); } //============================================================================= // Show field names //============================================================================= function showFieldNames() { if ( $('#modal-input-show-field-names').val() == 'N' ) { $('#modal-input-show-field-names').val('Y'); $('#button-show-hide-field-names').html('<?php echo $reeft_text0215 ?>').removeClass('btn-dark').addClass('btn-success'); $('#text-show-hide-field-names').removeClass('d-none'); $('.show-field-names-class').removeClass('d-none').addClass('text-info'); } else if ( $('#modal-input-show-field-names').val() == 'Y' ) { $('#modal-input-show-field-names').val('N'); $('#button-show-hide-field-names').html('<?php echo $reeft_text0216 ?>').removeClass('btn-success').addClass('btn-dark'); $('#text-show-hide-field-names').addClass('d-none'); $('.show-field-names-class').addClass('d-none').removeClass('text-info'); } } //============================================================================= // Get customer data for the Dashboard //============================================================================= function getCustomerData() { var parmData = 'data=' + 'result' + '&mode=' + 'mode' ; $.ajax({ url: "customer_maintain_dashboard_get.php", type: "POST", data: parmData, dataType: "json", cache: false, }) .done(function( jsonData ) { var recordsTotalActiveFormat = jsonData.header.recordsTotalActiveFormat; var recordsTotalInactiveFormat = jsonData.header.recordsTotalInactiveFormat; var recordsTotalFormat = jsonData.header.recordsTotalFormat; $('#customer-menu-active').html( recordsTotalActiveFormat ); $('#customer-menu-inactive').html( recordsTotalInactiveFormat ); $('#button-select-cust-active-X').html( '<?php echo $reeft_text0260 ?> (' + recordsTotalFormat + ')' ); $('#button-select-cust-active-1').html( '<?php echo $reeft_text0006 ?> (' + recordsTotalActiveFormat + ')' ); $('#button-select-cust-active-0').html( '<?php echo $reeft_text0007 ?> (' + recordsTotalInactiveFormat + ')' ); }) .always(function( jsonData ) { }) .fail(function( xhr, ajaxOptions, thrownError ) { console.log('I am failed..'); console.log( xhr ); }); } //============================================================================= // Create active / incative buttons //============================================================================= function createActiveInactive() { var yesButton = '<button type="button" id="button-selectActiveInactive-yes" onclick="selectActiveInactive(\'1\')" class="btn btn-primary"><?php echo $reeft_YES ?></button>'; var noButton = '<button type="button" id="button-selectActiveInactive-no" onclick="selectActiveInactive(\'0\')" class="btn btn-primary"><?php echo $reeft_NO ?></button>'; $('#data-result-button-active-inactive').html( yesButton + ' ' + noButton ); } //============================================================================= // Create Fileformat export termination file buttons //============================================================================= function selectActiveInactive( inputData) { if ( inputData == '1' ) { $('#modal-input-cust_active').val('1'); $('#button-selectActiveInactive-yes').removeClass('btn-primary').addClass('btn-success'); $('#button-selectActiveInactive-no').removeClass('btn-danger').addClass('btn-primary'); } else if ( inputData == '0' ) { $('#modal-input-cust_active').val('0'); $('#button-selectActiveInactive-no').removeClass('btn-primary').addClass('btn-danger'); $('#button-selectActiveInactive-yes').removeClass('btn-success').addClass('btn-primary'); } // Load customer data - this will be set to N in bth dataChange and dataAdd after this fundtion is called $('#input-load-customer-data').val('Y'); } //============================================================================= // Create extension button //============================================================================= function createExtension() { var DFT_VALID_EXTENSIONS = '<?php echo $DFT_VALID_EXTENSIONS ?>'; const arrayExtensions = DFT_VALID_EXTENSIONS.split('|'); var buttonHTMLextensions = ''; for (let i = 0; i < arrayExtensions.length; i++) { buttonHTMLextensions += '<button type="button" id="select-button-extension-id-modal-' + arrayExtensions[i] + '" class="btn btn-primary mr-1 button-extension--modal-class" onclick="selectExtension(\'' + arrayExtensions[i] + '\')">' + arrayExtensions[i] + '</button>' } //alert(buttonHTMLextensions) $('#data-result-button-extension-modal').html(buttonHTMLextensions); } //============================================================================= // Set extension //============================================================================= function selectExtension( inputExtension ) { $('#modal-input-fileformat_ext_file').val( inputExtension ); var selectButtonLineID = 'select-button-extension-id-modal-' + inputExtension; $('.button-extension--modal-class').removeClass('btn-success').addClass('btn-primary'); $('#' + selectButtonLineID).removeClass('btn-primary').addClass('btn-success'); resetModalMessage(); } //============================================================================= // Create Fileformat export termination file buttons //============================================================================= function createExportterminationfile() { var yesButton = '<button type="button" id="button-selectExportterminationfile-yes" onclick="selectExportterminationfile(\'1\')" class="btn btn-primary"><?php echo $reeft_YES ?></button>'; var noButton = '<button type="button" id="button-selectExportterminationfile-no" onclick="selectExportterminationfile(\'0\')" class="btn btn-primary"><?php echo $reeft_NO ?></button>'; $('#data-result-button-fileformat_exportterminationfile-modal').html( yesButton + ' ' + noButton ); } //============================================================================= // Create Fileformat export termination file buttons //============================================================================= function selectExportterminationfile( inputData) { if ( inputData == '1' ) { $('#modal-input-fileformat_exportterminationfile').val('1'); $('#button-selectExportterminationfile-yes').removeClass('btn-primary').addClass('btn-success'); $('#button-selectExportterminationfile-no').removeClass('btn-success').addClass('btn-primary'); } if ( inputData == '0' ) { $('#modal-input-fileformat_exportterminationfile').val('0'); $('#button-selectExportterminationfile-no').removeClass('btn-primary').addClass('btn-success'); $('#button-selectExportterminationfile-yes').removeClass('btn-success').addClass('btn-primary'); } resetModalMessage(); } //============================================================================= // Create fileformat numberdecimal separator button //============================================================================= function createNumberDecimalSeparator() { var DFT_VALID_DECIMAL_SEPERATOR = '<?php echo $DFT_VALID_DECIMAL_SEPERATOR ?>'; const wrkArray = DFT_VALID_DECIMAL_SEPERATOR.split('|'); var buttonHTML = ''; for (let i = 0; i < wrkArray.length; i++) { buttonHTML += '<button type="button" id="select-button-numberdecimalseparator-id-modal-' + i + '" class="btn btn-primary mr-1 fileformat_numberdecimalseparator-class" onclick="selectNumberDecimalSeparator(\'' + wrkArray[i] + '\',\'' + i + '\')">' + wrkArray[i] + '</button>' } //alert(buttonHTMLextensions) $('#data-result-button-fileformat_numberdecimalseparator-modal').html(buttonHTML); } //============================================================================= // Set extension //============================================================================= function selectNumberDecimalSeparator( inputData, inputCounter ) { // Fucking junk - but , and . does not work as part of id names if ( inputCounter == '' ) { if ( inputData == ',' ) inputCounter = 0; if ( inputData == '.' ) inputCounter = 1; } $('#modal-input-fileformat_numberdecimalseparator').val( inputData ); var selectButtonLineID = 'select-button-numberdecimalseparator-id-modal-' + inputCounter; $('.fileformat_numberdecimalseparator-class').removeClass('btn-success').addClass('btn-primary'); $('#' + selectButtonLineID).removeClass('btn-primary').addClass('btn-success'); // Place cursor in next field? //$('#modal-input-fileformat_exportterminationfile').trigger('focus'); resetModalMessage(); } //============================================================================= // Create fileformat separator button => note % is splitter //============================================================================= function createFileFormatSeparator() { var DFT_VALID_DECIMAL_SEPERATOR = '<?php echo $DFT_VALID_FILEFORMAT_SEPERATOR ?>'; const wrkArray = DFT_VALID_DECIMAL_SEPERATOR.split('%'); var buttonHTML = ''; for (let i = 0; i < wrkArray.length; i++) { buttonHTML += '<button type="button" id="select-button-fileformat_separator-id-modal-' + i + '" class="btn btn-primary mr-1 fileformat_separator-class" onclick="selectFileFormatSeparator(\'' + wrkArray[i] + '\',\'' + i + '\')">' + wrkArray[i] + '</button>' } $('#data-result-button-fileformat_separator-modal').html(buttonHTML); } //============================================================================= // Set extension //============================================================================= function selectFileFormatSeparator( inputData, inputCounter ) { // Fucking junk - but , and . does not work as part of id names if ( inputCounter == '' ) { if ( inputData == ';' ) inputCounter = 0; if ( inputData == ',' ) inputCounter = 1; if ( inputData == '|' ) inputCounter = 2; } $('#modal-input-fileformat_separator').val( inputData ); var selectButtonLineID = 'select-button-fileformat_separator-id-modal-' + inputCounter; $('.fileformat_separator-class').removeClass('btn-success').addClass('btn-primary'); $('#' + selectButtonLineID).removeClass('btn-primary').addClass('btn-success'); // Place cursor in next field? //$('#modal-input-fileformat_exportterminationfile').trigger('focus'); resetModalMessage(); } //============================================================================= // Create code page buttons //============================================================================= function createCodePage() { var DFT_VALID_CODE_PAGE = '<?php echo $DFT_VALID_CODE_PAGE ?>'; const wrkArray = DFT_VALID_CODE_PAGE.split('|'); var buttonHTML = ''; for (let i = 0; i < wrkArray.length; i++) { buttonHTML += '<button type="button" id="select-button-modal-input-fileformat_codepage-id-modal-' + wrkArray[i] + '" class="btn btn-primary mr-1 fileformat_codepage-class" onclick="selectCodePage(\'' + wrkArray[i] + '\')">' + wrkArray[i] + '</button>' } $('#data-result-button-code-page-modal').html(buttonHTML); } //============================================================================= // Set code page //============================================================================= function selectCodePage( inputData ) { $('#modal-input-fileformat_codepage').val( inputData ); var selectButtonLineID = 'select-button-modal-input-fileformat_codepage-id-modal-' + inputData; $('.fileformat_codepage-class').removeClass('btn-success').addClass('btn-primary'); $('#' + selectButtonLineID).removeClass('btn-primary').addClass('btn-success'); // Place cursor in next field? //$('#modal-input-fileformat_exportterminationfile').trigger('focus'); resetModalMessage(); } //============================================================================= // Create some dir path //============================================================================= function createDefaultDirPath() { var input_cust_number = $('#modal-input-cust_number').val(); if ( input_cust_number != '' ) { $('#modal-input-input_dir').val( DFT_DIR_PATH + '/' + input_cust_number + '/' + DFT_INPUT_DIR ); $('#modal-input-output_dir').val( DFT_DIR_PATH + '/' + input_cust_number + '/' + DFT_OUTPUT_DIR ); $('#modal-input-done_dir').val( DFT_DIR_PATH + '/' + input_cust_number + '/' + DFT_DONE_DIR ); $('#modal-input-log_dir').val( DFT_DIR_PATH + '/' + input_cust_number + '/' + DFT_LOG_DIR ); $('#modal-input-export_done_dir').val( DFT_DIR_PATH + '/' + input_cust_number + '/' + DFT_EXPORT_DONE_DIR ); $('#modal-input-error_dir').val( DFT_DIR_PATH + '/' + input_cust_number + '/' + DFT_ERROR_DIR ); $('#modal-input-program_dir').val( DFT_DIR_PATH + '/' + input_cust_number + '/' + DFT_PROGRAM_DIR ); } else { $('#modal-input-input_dir').val(''); $('#modal-input-output_dir').val(''); $('#modal-input-done_dir').val(''); $('#modal-input-log_dir').val(''); $('#modal-input-export_done_dir').val(''); $('#modal-input-error_dir').val(''); $('#modal-input-program_dir').val(''); } } //============================================================================= // Reset some dir path //============================================================================= function resetDefaultDirPath() { $('#modal-input-input_dir').val(''); $('#modal-input-output_dir').val(''); $('#modal-input-done_dir').val(''); $('#modal-input-log_dir').val(''); $('#modal-input-export_done_dir').val(''); $('#modal-input-error_dir').val(''); $('#modal-input-program_dir').val(''); } //============================================================================= // Validate input // only a-z, 0-9 and _ and , // Remove blanks // String cannot start with . or _ //============================================================================= function cleanAndValidate( input_string ) { const original = input_string; // Remove invalid characters (keep a-zA-Z0-9._ only) let cleaned = original.replace(/[^a-zA-Z0-9._]/g, ''); // Remove leading/trailing underscore or dot cleaned = cleaned.replace(/^[_\.]+|[_\.]+$/g, ''); // Remove consecutive _ or . (optional) cleaned = cleaned.replace(/[_.]{2,}/g, '_'); // Validation happens on original (not cleaned) input const isValid = /^[a-zA-Z0-9._]+$/.test(original) && !/^[_\.]/.test(original) && !/[_\.]$/.test(original) && !/[_.]{2,}/.test(original); return isValid; } //============================================================================= // Validate input // only a-z, 0-9 and _ and , // Remove blanks // String cannot start with . or _ //============================================================================= function cleanAndValidateX( input_string ) { const original = input_string; // Remove invalid characters (keep a-zA-Z0-9._ only) let cleaned = original.replace(/[^a-zA-Z0-9._]/g, ''); // Remove leading/trailing underscore or dot cleaned = cleaned.replace(/^[_\.]+|[_\.]+$/g, ''); // Remove consecutive _ or . (optional) cleaned = cleaned.replace(/[_.]{2,}/g, '_'); // Validation happens on original (not cleaned) input const isValid = /^[a-zA-Z0-9._]+$/.test(original) && !/^[_\.]/.test(original) && !/[_\.]$/.test(original) && !/[_.]{2,}/.test(original); return { cleaned, isValid }; } //============================================================================= // Work with dirs //============================================================================= function showDirWorkPlace() { if ( $('#main-modal-dir-work-place').hasClass('d-none') ) { // Check content of fields // if ( dataSave('*JUST_CHECK') === false ) { // return; // } var work_cust_number = $('#modal-input-cust_number').val(); var work_cust_name = $('#modal-input-cust_name').val(); var work_company_logo_url = $('#modal-input-company_logo_url').val(); if ( work_company_logo_url != '' ) { work_company_logo_url_text = '<img class="img-fluid" style="height:40px" src="' + work_company_logo_url + '">'; } else { work_company_logo_url_text = ''; } // Show customer information $('#main-modal-dir-work-place-customer-information').html(work_cust_number + ' - ' + work_cust_name); $('#main-modal-dir-work-place-logo-information').html(work_company_logo_url_text); var work_input_dir = $('#modal-input-input_dir').val(); var work_output_dir = $('#modal-input-output_dir').val(); var work_done_dir = $('#modal-input-done_dir').val(); var work_error_dir = $('#modal-input-error_dir').val(); var work_log_dir = $('#modal-input-log_dir').val(); var work_export_done_dir = $('#modal-input-export_done_dir').val(); var work_program_dir = $('#modal-input-program_dir').val(); var work_input_dir_org = $('#modal-input-input_dir_org').val(); var work_output_dir_org = $('#modal-input-output_dir_org').val(); var work_done_dir_org = $('#modal-input-done_dir_org').val(); var work_error_dir_org = $('#modal-input-error_dir_org').val(); var work_log_dir_org = $('#modal-input-log_dir_org').val(); var work_export_done_dir_org = $('#modal-input-export_done_dir_org').val(); var work_program_dir_org = $('#modal-input-program_dir_org').val(); // Reset create dir button found checker $('#input-at-least-one-button-found').val('N'); // If customer already exists - foreget about the button creation if ( $('#input-customer-already-exists').val() != 'Y' ) { // Check if dir exists checkDir( work_input_dir,'input_dir',work_input_dir_org ); checkDir( work_output_dir,'output_dir',work_output_dir_org ); checkDir( work_done_dir,'done_dir',work_done_dir_org ); checkDir( work_error_dir, 'error_dir',work_error_dir_org ); checkDir( work_log_dir, 'log_dir',work_log_dir_org ); checkDir( work_export_done_dir, 'export_done_dir',work_export_done_dir_org ); checkDir( work_program_dir, 'program_dir',work_program_dir_org ); $('#main-modal-input-fields').addClass('d-none'); $('#main-modal-dir-work-place').removeClass('d-none'); $('#workdir-modal-input-input_dir').html( work_input_dir ); $('#workdir-modal-input-output_dir').html( work_output_dir ); $('#workdir-modal-input-done_dir').html( work_done_dir ); $('#workdir-modal-input-error_dir').html( work_error_dir ); $('#workdir-modal-input-log_dir').html( work_log_dir ); $('#workdir-modal-input-export_done_dir').html( work_export_done_dir ); $('#workdir-modal-input-program_dir').html( work_program_dir ); } // Animate animateCSS('#main-modal-dir-work-place', 'slideInRight'); $('#workdir-button-create-all-dirs').prop('disabled',false); $('#input-work-place-shown').val('*DIRS'); $('#button-show-dir-work-place').html('<?php echo $reeft_text0207 ?>') // Get modal height and change it var m_h = $('#modal-size-height').val(); $('#main-modal-dir-work-place').css('height', m_h) } else { $('#input-work-place-shown').val('*FIELDS'); $('#main-modal-input-fields').removeClass('d-none'); $('#main-modal-dir-work-place').addClass('d-none'); // Animate animateCSS('#main-modal-input-fields', 'slideInLeft'); $('#button-show-dir-work-place').html('<?php echo $reeft_text0208 ?>') } } //============================================================================= // Check dir //============================================================================= function checkDir( input_string, input_id, input_dir_org ) { var parmData = 'input_string=' + input_string; ; $.ajax({ url: "does_it_exist.php", type: "GET", data: parmData, dataType: "json", cache: false, }) .done(function( jsonData ) { var returnCode = jsonData.header.returnCode; var returnMsg = jsonData.header.returnMsg; var entries_found = jsonData.header.entries_found; var input_exists = jsonData.header.input_exists; var id01 = 'workdir-modal-input-' + input_id + '-exists'; var id02 = 'workdir-modal-input-' + input_id + '-view'; var id03 = 'workdir-modal-input-' + input_id + '-create-dir'; var id04 = 'workdir-modal-button-' + input_id + '-create-dir'; if ( input_exists == 'Y' ) { $('#' + id01 ).html('<i class="text-success fa-solid fa-1x fa-circle-check"></i>'); $('#' + id02 ).html('<span style="cursor: pointer" title="<?php echo $reeft_text0195 ?>" onclick="viewDirContent())"><i class="text-success fa-solid fa-eye"></i></span>'); $('#' + id03 ).html(''); } else { $('#' + id01 ).html('<i class="text-danger fa-solid fa-ban"></i>'); $('#' + id02 ).html('<span style="cursor: not-allowed"><i class="text-danger fa-solid fa-eye-slash"></i></span>'); // Check if there is a library? if ( input_string != '' ) { $('#' + id03 ).html('<button type="button" id="' + id04 + '" class="create-dir-all btn btn-dark" onclick="createDir(\'' + input_string + '\',\'' + input_dir_org + '\',\'' + id01 + '\',\'' + id02 + '\',\'' + id03 + '\',\'' + id04 + '\')"><?php echo $reeft_button_create_dir ?></button>' ); } else { $('#' + id03 ).html('*ERROR' ); } $('#input-at-least-one-button-found').val('Y'); $('#workdir-button-create-all-dirs').prop("disabled", false); } }) .always(function( jsonData ) { }) .fail(function( xhr, ajaxOptions, thrownError ) { console.log('I am failed..'); console.log( xhr ); }); } //============================================================================= // Create all dir //============================================================================= function createDirsAll() { $('.create-dir-all').click(); $('#workdir-button-create-all-dirs').prop('disabled',true); } //============================================================================= // Create dir //============================================================================= function createDir( input_path, input_dir, id01, id02, id03, id04 ) { // Get tinyfilemanager dir var tinyfilemanager_dir = DFT_DIR_PATH + '/' + $('#modal-input-cust_number').val(); var base_dir = DFT_DIR_PATH; var parmData = 'input_string=' + input_path + '&input_dir=' + input_dir + '&input_tinyfilemanager_dir=' + tinyfilemanager_dir ; $.ajax({ url: "create_dir.php", type: "GET", data: parmData, dataType: "json", cache: false, }) .done(function( jsonData ) { var returnCode = jsonData.header.returnCode; var returnMsg = jsonData.header.returnMsg; var entries_found = jsonData.header.entries_found; var input_exists = jsonData.header.input_exists; // Make button disabled if ( returnCode == '00' ) { $('#' + id01 ).html('<i class="text-success fa-solid fa-1x fa-circle-check"></i>'); $('#' + id02 ).html('<span style="cursor: pointer" title="<?php echo $reeft_text0195 ?>" onclick="viewDirContent())"><i class="text-success fa-solid fa-eye"></i></span>'); $('#' + id04 ).prop('disabled',true); // Show "Change message" $('#modal-data-not-saved-warning-wrapper').removeClass('d-none'); $('#modal-data-not-saved-warning').html('<?php echo $reeft_text0191 ?>' ); } }) .always(function( jsonData ) { }) .fail(function( xhr, ajaxOptions, thrownError ) { console.log('I am failed..'); console.log( xhr ); }); } //============================================================================= // Trigger blue //============================================================================= function triggerBlur() { $('.check-input-in-modal').trigger( 'blur' ); // Set change checker $('#input-change-made-somewhere').val( 'Y' ); // Make save button green only if *update if ( $('#input-mode').val() == '*update' ) { $('#modal-save-button').removeClass('btn-primary').addClass('btn-success'); $('#modal-save-button-only').removeClass('btn-primary').addClass('btn-success'); } // Show "Change message" only update if ( $('#input-mode').val() == '*update' ) { $('#modal-data-not-saved-warning-wrapper').removeClass('d-none'); $('#modal-data-not-saved-warning').html('<?php echo $reeft_text0190 ?>' ); } // Reset modal message resetModalMessage(); } //============================================================================= // Close modal //============================================================================= function closeModal( modalToClose) { $('#' + modalToClose ).modal( 'hide' ); } //============================================================================= // Do something //============================================================================= function doSomeThingAfterAnimationEnds() { if ( $('#input-work-place-shown').val() == '*DIRS') { // No create dirs created, hide ALL button if ( $('#input-at-least-one-button-found').val() == 'N') { $('#workdir-button-create-all-dirs').prop("disabled", true); } else { $('#workdir-button-create-all-dirs').prop("disabled", false); } } //console.log('Do something' + moment().format('YYYY-MM-DD HH:mm:ss')); // Get modal height var modalWidth = $("#customer_maintainModal").width(); var modalHeight = $("#customer_maintainModal").height(); // Save modal size $('#modal-size-width').val( modalWidth ); $('#modal-size-height').val( modalHeight); } //============================================================================= // Set clock //============================================================================= function updateClock() { var currentTime = moment().format('YYYY-MM-DD HH:mm:ss'); currentTime = REEFT_format_date( currentTime, DFT_DATE_DISPLAY_FORMAT ) $('#input-current-date').val( moment().format('YYYY-MM-DD') ); $('#input-current-time').val( moment().format('HH:mm:ss') ); $('#current-time').html( currentTime ); // If add mode update date/time in modal window if ( $('#input-mode').val() == '*add' ) { if ( $('#input-is-modal-open').val() == 'Y' ) { $('#modal-input-create_timestamp').val( $('#input-current-date').val() + ' ' + $('#input-current-time').val() ); } } } //============================================================================= // jQuery - Ready //============================================================================= $(document).ready(function() { //----------------------------------------------------------------------- // Start the clock //----------------------------------------------------------------------- updateClock(); setInterval(function() { updateClock(); }, 1000); //----------------------------------------------------------------------- //----------------------------------------------------------------------- // Init orginal dir fields //----------------------------------------------------------------------- $('#modal-input-program_dir_org').val('<?php echo $DFT_PROGRAM_DIR ?>'); $('#modal-input-input_dir_org').val('<?php echo $DFT_INPUT_DIR ?>'); $('#modal-input-output_dir_org').val('<?php echo $DFT_OUTPUT_DIR ?>'); $('#modal-input-error_dir_org').val('<?php echo $DFT_ERROR_DIR ?>'); $('#modal-input-done_dir_org').val('<?php echo $DFT_DONE_DIR ?>'); $('#modal-input-log_dir_org').val('<?php echo $DFT_LOG_DIR ?>'); $('#modal-input-export_done_dir_org').val('<?php echo $DFT_EXPORT_DONE_DIR ?>'); //----------------------------------------------------------------------- // Delay keyup checker //----------------------------------------------------------------------- var delay = (function () { var timer = 0; return function (callback, ms) { clearTimeout(timer); timer = setTimeout(callback, ms); }; })() // Check field content for class check-input-in-modal (cust_number for example) // $('.check-input-in-modal').on('keyup blur', function (event) { // const inputEl = $(this); // const val = inputEl.val(); // const { cleaned, isValid } = cleanAndValidate(val); // console.log(val + ' ' + isValid + ' ' + event.type); // // On blur: clean and write back value // if (event.type === 'blur') { // inputEl.val(cleaned); // if ( $('#input-mode').val() == '*add' ) { // checkDataExists(); // } // } // // Show or hide error message // if ( cleaned != '' ) { // if ( isValid === true ) { // $('#modal-message').html('<?php echo $reeft_text0206 ?>') // // Create dir path // createDefaultDirPath( cleaned ); // } else { // $('#modal-message').html('<?php echo $reeft_error0014 ?>') // } // } // }); // If a field is changed set flag for update $('.check-for-input-change-class').on('keyup change', function (event) { const inputEl = $(this); const val = inputEl.val(); $('#input-change-made-somewhere').val( 'Y' ); // Make save button green only if *update if ( $('#input-mode').val() == '*update' ) { $('#modal-save-button').removeClass('btn-primary').addClass('btn-success'); $('#modal-save-button-only').removeClass('btn-primary').addClass('btn-success'); // Show "Change message" $('#modal-data-not-saved-warning-wrapper').removeClass('d-none'); $('#modal-data-not-saved-warning').html('<?php echo $reeft_text0190 ?>' ); } }); // Cust group trigger var eventList = ["change", "keyup", "paste"]; var number = document.querySelector('#modal-input-cust_group') for(event of eventList) { number.addEventListener(event, event => { let input_value = event.target.value; $('.select-button-line-modal').removeClass('btn-success').addClass('btn-primary'); $('#select-button-line-id-modal-' + input_value).removeClass('btn-primary').addClass('btn-success'); console.log( input_value ); }); } //----------------------------------------------------------------------- // Check exists //----------------------------------------------------------------------- let $filter01 = $('#modal-input-cust_number'); $filter01.on('keyup', function () { delay(function () { var inputValue = $('#modal-input-cust_number').val(); console.log(inputValue) if ( inputValue != '') { console.log('this will hit, once user has not typed for 1 second ' + inputValue ); checkDataExists(); } else { resetDefaultDirPath(); } }, 0500); }); // When opening modal $('#customer_maintainModal').on('shown.bs.modal', function () { $('#input-is-modal-open').val('Y'); if ( $('#input-mode').val() == '*add' ) { $('#modal-input-cust_number').focus(); } if ( $('#input-mode').val() == '*update' ) { $('#modal-input-cust_name').focus(); } // Get modal height var modalWidth = $("#customer_maintainModal").width(); var modalHeight = $("#customer_maintainModal").height(); // Save modal size $('#modal-size-width').val( modalWidth ); $('#modal-size-height').val( modalHeight); }) // When closing modal $('#customer_maintainModal').on('hidden.bs.modal', function (e) { resetModalInputFields(); $('#input-is-modal-open').val('N'); }) // Hide fields names on modal as default $('#modal-input-show-field-names').val('N'); // Get come customer data stats getCustomerData(); // Create select buttons createActiveInactive(); createExtension(); createExportterminationfile(); createNumberDecimalSeparator(); createFileFormatSeparator(); createCodePage(); $('#input-default-search-active').val(''); // Do not show deleted $('#input-show-deleted').val('Y'); $('#input-timeStamp').val('<?php echo $timeStamp ?>'); // $('#input-fromdate').val('<?php echo $fromdate ?>'); // $('#input-fromtime').val('<?php echo $fromtime ?>'); // $('#input-todate').val('<?php echo $todate ?>'); // $('#input-totime').val('<?php echo $totime ?>'); //$('#delay-marker-id').html('<i id="delay-marker-icon-id" class="text-success fa-solid fa-circle"></i>'); // Get data done by datatables setDataTables(); //----------------------------------------------------------------------- // Set default from/to date //----------------------------------------------------------------------- //setDefaultFromToDate('2'); setDefaultMonths(); //----------------------------------------------------------------------- //----------------------------------------------------------------------- // Set font awesome icon type //----------------------------------------------------------------------- // Value is from config/config.php var iconType = '<?php echo $DFT_SET_FONT_AWESOME_ICON_TYPE ?>'; setFontAwesomeIconType( iconType ); //----------------------------------------------------------------------- //----------------------------------------------------------------------- // Extendd search field //----------------------------------------------------------------------- $('#dt-search-0').on('keyup', function() { //$('#dt-search-0').addClass('extend-search-field'); }); // DataTable search delay //$('#REEFTvisual_data_wrapper .dt-input') //$('#REEFTvisual_data_wrapper .dataTables_filter input') $('#REEFTvisual_data_wrapper #dt-search-0') // .unbind() // overrule normal behavior // .bind('keyup', function(e){ // $('#delay-marker-icon-id').removeClass('text-success').addClass('text-danger'); // //inputValue = $('.dataTables_filter input').val(); // inputValue = $('#dt-search-0').val(); // var currSearchValue = $('#input-search-line').val(); // if (inputValue != currSearchValue) { // $('#input-search-line').val( inputValue ); // //If enter or delete we update immediately, consider to add backspace=8 and delete=46 also // const keyList = [13]; // if (keyList.includes(e.keyCode)) { // // console.log('immediately ' + inputValue ); // $('#delay-marker-icon-id').removeClass('text-danger').addClass('text-success'); // console.log('1 ' + inputValue) // thisGlobalTableData.search(inputValue).draw(); // fire in the hole // } else { // delay(function () { // //console.log('this will hit, once user has not typed for 1 second ' + inputValue ); // $('#delay-marker-icon-id').removeClass('text-danger').addClass('text-success'); // console.log('2 ' + inputValue) // thisGlobalTableData.search(inputValue).draw(); // fire in the hole // }, 0800); // } // } // }); //========================================================================================================= // Set color picker - TEXT // // Create HEX value (https://en.wikipedia.org/wiki/Web_colors) // var hexValueColor = color.toHexString(); // // Create RGB (https://en.wikipedia.org/wiki/RGB_color_model) // hexcolor = hexcolor.replace("#", ""); // var r = parseInt(hexcolor.substr(0,2),16); // var g = parseInt(hexcolor.substr(2,2),16); // var b = parseInt(hexcolor.substr(4,2),16); // var yiq = ((r*299)+(g*587)+(b*114))/1000; // // // Create YIQ (https://en.wikipedia.org/wiki/YIQ) // if ( yiq >= 128) { // var textColor = 'black'; // } else { // var textColor = 'white'; // } // // console.log('change: ' + hexcolor + ' ' + hexValueColor + ' ' + yiq + ' ' + r + ' ' + g + ' ' + b ); // //========================================================================================================= $(".text-color-palette").spectrum({ showInitial: true, showInput: true, chooseText: "Vælg farve", cancelText: "Annuller", preferredFormat: "hex", color: "#000", showPalette: true, flat: false, palette: [ ["#000","#444","#666","#999","#ccc","#eee","#f3f3f3","#fff"], ["#f00","#f90","#ff0","#0f0","#0ff","#00f","#90f","#f0f"], ["#f4cccc","#fce5cd","#fff2cc","#d9ead3","#d0e0e3","#cfe2f3","#d9d2e9","#ead1dc"], ["#ea9999","#f9cb9c","#ffe599","#b6d7a8","#a2c4c9","#9fc5e8","#b4a7d6","#d5a6bd"], ["#e06666","#f6b26b","#ffd966","#93c47d","#76a5af","#6fa8dc","#8e7cc3","#c27ba0"], ["#c00","#e69138","#f1c232","#6aa84f","#45818e","#3d85c6","#674ea7","#a64d79"], ["#900","#b45f06","#bf9000","#38761d","#134f5c","#0b5394","#351c75","#741b47"], ["#600","#783f04","#7f6000","#274e13","#0c343d","#073763","#20124d","#4c1130"] ], // Called as the original input changes. Only happens when the input is closed or the 'Choose' button is clicked. change: function(color) { // Get hex color var hexValueColor = color.toHexString(); }, move: function(color) { // Get hex color var hexValueColor = color.toHexString(); }, show: function(color) { $('#input-current-color-picker').val( this.id ); // Get hex color var hexValueColor = color.toHexString(); }, hide: function(color) { // Get hex color var hexValueColor = color.toHexString(); } }); //----------------------------------------------------------------------- // Event listener for the update button //----------------------------------------------------------------------- // $('#updateButton').on('click', function() { // // Trigger a redraw of the table // thisGlobalTableData.draw(); // }); //----------------------------------------------------------------------- // Bind the scroll to an element - controls lazy scroll //----------------------------------------------------------------------- //$('#modal-ifs-list-data-result').bind('scroll',chk_scroll); //----------------------------------------------------------------------- // Event listener for the update button //----------------------------------------------------------------------- $('#updateButton').on('click', function() { // Update input variables input_fromdate = $('#input-fromdate').val(); input_fromtime = $('#input-fromtime').val(); input_todate = $('#input-todate').val(); input_totime = $('#input-totime').val(); input_logType = $('#input-logType').val(); input_logCode = $('#input-logCode').val(); input_logPgm = $('#input-logPgm').val(); input_clientID = $('#input-clientID').val(); input_dataLine = $('#input-dataLine').val(); input_group_search = $('#input-default-search-group').val(); input_active_search = $('#input-default-search-active').val(); // Trigger a redraw of the table thisGlobalTableData.draw(); }); //----------------------------------------------------------------------- // Set short cuts //----------------------------------------------------------------------- // If add d-none class, do not add shortcut if ( GLOBAL_ADD_ALLOWED == 'Y' ) { shortcut.add("Alt+F6",function() { $('#add-button').click(); }); // Show add button $('#add-button').removeClass('d-none'); } // All shortcut.add("Alt+1",function() { $('#button-select-cust-active-X').click(); }); // Active shortcut.add("Alt+2",function() { $('#button-select-cust-active-1').click(); }); // Inactive shortcut.add("Alt+3",function() { $('#button-select-cust-active-0').click(); }); // Show hide field names shortcut.add("Alt+F2",function() { if ( $('#input-is-modal-open').val() == 'Y' ) { $('#button-show-hide-field-names').click(); } }); // Show dir work place shortcut.add("Alt+F3",function() { if ( $('#input-is-modal-open').val() == 'Y' ) { showDirWorkPlace(); } }); // // Close window // shortcut.add("Shift+Esc",function() { // $('#button-close').click(); // }); // Make sure scroll is active when closeing the previevwer // $('#import_done_listIFSfileModal').on("hidden.bs.modal", function (e) { //fire on closing modal box // if ($('.modal:visible').length) { // check whether parent modal is opend after child modal close // $('body').addClass('modal-open'); // if open mean length is 1 then add a bootstrap css class to body of the page // // Remove iframe data... // //$('#modal-preview-iframe').html(''); // } // }); }); // --> </script> </head> <body> <div class="container-fluid mt-2 pl-3 pr-3"> <div id="modal-size"></div> <input type="text" class="d-none" id="modal-size-width"> <input type="text" class="d-none" id="modal-size-height"> <input type="text" class="d-none" id="input-change-made-somewhere"> <input type="text" class="d-none" id="input-at-least-one-button-found"> <input type="text" class="d-none" id="input-work-place-shown"> ... <input type="text" class="d-none" id="input-customer-already-exists"> <input type="text" class="d-none" id="input-mode"> <input type="text" class="d-none" id="input-is-modal-open"> <input type="text" class="d-none" id="input-load-customer-data"> <input type="text" class="d-none" id="myInput"> <input type="text" class="d-none" id="input-default-search-group"> <input type="text" class="d-none" id="input-default-search-active"> <input type="text" class="d-none" id="modal-input-show-field-names"> <input type="text" class="d-none" id="input-show-sql"> <input type="text" class="d-none" id="input-showMoreSearchFields"> <input type="text" class="d-none" id="input-current-date"> <input type="text" class="d-none" id="input-current-time"> <input type="text" class="d-none" id="input-show-deleted" > <input type="text" class="d-none" id="input-search-line"> <input type="text" class="d-none" id="input-filter-line"> <input type="text" class="d-none" id="input-rpyOffSet"> <input type="text" class="d-none" id="input-rpyTotalRecordsFound"> <input type="text" class="d-none" id="input-rpyTotalPages"> <!--<input type="text" class="d-none" id="input-rpyPageSize">--> <div class="row"> <div class="col-2"> <img src="images/customer-logo.png" alt="Customer Logo"> </div> <div class="col-8 text-center <?php echo $DFT_CLOCK_SIZE ?>"> <i class="font-awesome-pseudo-class fa-thin fa-clock"></i> <span id="current-time"><?php echo date('d-m-Y h:i:s') ?></span> </div> <div class="col-2 text-right"> <div class="btn btn-primary mb-1" onclick="loadPage('menu_customer.php','','','')" title="<?php echo $reeft_go_to_my_dear_home ?>"><i class="font-awesome-pseudo-class fa-2x fa-thin fa-home"></i></div> <div class="d-none"> <div class="btn btn-primary mb-1 d-none d-xl-inline-block" onclick="loadPage('menu_main.php','','','')" title="<?php echo $reeft_go_to_my_dear_home_03 ?>"><i class="font-awesome-pseudo-class fa-2x fa-thin fa-fort"></i></div> <div class="btn btn-danger mb-1 d-none d-lg-inline-block" onclick="signoff()" title="<?php echo $reeft_go_to_my_dear_home_02 ?>"><i class="font-awesome-pseudo-class fa-thin fa-2x fa-right-from-bracket"></i></div> </div> </div> </div> <div class="row"> <div class="col-12 text-center"> <div id="data-company-information"></div> </div> </div> <div class="card mt-2"> <div class="card-header text-muted"> <div class="row mt-2"> <div class="col-4 h4"> <i class="font-awesome-pseudo-class fa-thin fa-people"></i> <?php echo "$reeft_text0138"; ?> </div> <div class="col-4 text-center"> <div id="working-message-text"></div> </div> <div class="col-4 text-right font-weight-bold"> <div class="row d-none"> <div class="col text-right" style="font-size:0.9em"> <?php echo $reeft_text0061 ?> : <span id="text-total-records-found">...</span><br> <?php echo $reeft_text0259 ?> : <span id="customer-menu-active">...</span><br> <?php echo $reeft_text0258 ?> : <span id="customer-menu-inactive">...</span><br> </div> </div> </div> </div> </div> <div class="card-body"> <!-- Message if screen is not wide enough --> <div class="container-fluid mt-2 mb-4 d-block d-lg-none"> <div id="general-message-top" class="border border-danger rounded p-2 text-danger font-weight-boldx"><?php echo $reeft_error0040a ?></div> </div> <!-- Message if screen is not wide enough --> <!-- SQL statement --> <div id="sql-wrapper" class="d-none"> <div class="d-none d-lg-block"> <div class="row mb-2"> <div id="input-sql-col" class="col-12 border p-1 text-right"> <div id="input-sql" onclick="showSQL()"><i class="fa-solid fa-code"></i></div> </div> </div> </div> </div> <!-- Group lines found --> <div class="d-none d-lg-block"> <div class="row mb-2"> <div class="col-8 p-1"> <div id="data-result-button-group"></div> </div> <div class="col-4 p-1 text-right"> <button style="width:120px" title="Shortcut: Alt+1" class="btn btn-sm btn-dark mb-1 active-search-button-class" onclick="doActiveSearch('')" id="button-select-cust-active-X"><?php echo $reeft_text0260 ?></button> <button style="width:120px" title="Shortcut: Alt+2" class="btn btn-sm btn-dark mb-1 active-search-button-class" onclick="doActiveSearch('1')" id="button-select-cust-active-1"><?php echo $reeft_text0006 ?></button> <button style="width:120px" title="Shortcut: Alt+3" class="btn btn-sm btn-dark mb-1 active-search-button-class" onclick="doActiveSearch('0')" id="button-select-cust-active-0"><?php echo $reeft_text0007 ?></button> </div> </div> </div> <!-- From / to date wrapper start --> <div id="from-to-date-wrapper" class="d-none"> <div class="row mb-1"> <div class="col text-left"> <div class="d-noneX" id="default-month-buttons"></div> </div> <div class="col text-right"> <button id="button-showMoreSearchFields" style="width:100px" onclick="showMoreSearchFields()" class="btn btn-primary btn-sm">More...</button> </div> </div> <div class="row mb-1"> <div class="col-xl-4 col-lg-4 col-md-6 col-sm-4 col-xs-4 mt-1"> <div class="row"> <div class="col"> <small><?php echo $reeft_text0121 ?></small> </div> </div> <div class="row"> <div class="col mb-1"> <input id="input-fromdate" type="date" class="form-control"> </div> <div class="col"> <input id="input-fromtime" type="time" class="form-control"> </div> </div> </div> <div class="col-xl-4 col-lg-4 col-md-6 col-sm-4 col-xs-4 mt-1"> <div class="row"> <div class="col"> <small><?php echo $reeft_text0122 ?></small> </div> </div> <div class="row"> <div class="col mb-1"> <input id="input-todate" type="date" class="form-control"> </div> <div class="col"> <input id="input-totime" type="time" class="form-control"> </div> </div> </div> <div class="col-xl-4 col-lg-4 col-md-6 col-sm-4 col-xs-4 mt-1"> <div class="row"> <div class="col"> <small> </small> </div> </div> <div class="row"> <div class="col mb-1"> <button type="button" class="btn btn-primary mb-1" id="updateButton"><?php echo $reeft_button_get_data_icon2 ?></button> <button type="button" class="btn btn-primary mb-1" onclick="getData('*RESET')"><?php echo $reeft_button_order_reset01_icon ?></button> </div> </div> </div> </div> </div> <!-- From / to date wrapper end --> <!-- Misc 1 search fields start --> <div id="misc-1-search-fields" class="d-none"> <div class="row mb-1"> <div class="col-xl-2 col-lg-2 col-md-3 col-sm-4 col-xs-4 mt-1"> <div class="row"> <div class="col"> <small><?php echo $reeft_text0247 ?></small> </div> </div> <div class="row"> <div class="col mb-1"> <input id="input-logType" type="text" class="form-control"> </div> </div> </div> <div class="col-xl-2 col-lg-2 col-md-3 col-sm-4 col-xs-4 mt-1"> <div class="row"> <div class="col"> <small><?php echo $reeft_text0249 ?></small> </div> </div> <div class="row"> <div class="col mb-1"> <input id="input-logCode" type="text" class="form-control"> </div> </div> </div> <div class="col-xl-2 col-lg-2 col-md-3 col-sm-4 col-xs-4 mt-1"> <div class="row"> <div class="col"> <small><?php echo $reeft_text0119 ?></small> </div> </div> <div class="row"> <div class="col mb-1"> <input id="input-logPgm" type="text" class="form-control"> </div> </div> </div> <div class="col-xl-2 col-lg-2 col-md-3 col-sm-4 col-xs-4 mt-1"> <div class="row"> <div class="col"> <small><?php echo $reeft_text0250 ?></small> </div> </div> <div class="row"> <div class="col mb-1"> <input id="input-clientID" type="text" class="form-control"> </div> </div> </div> </div> </div> <!-- Misc 1 search fields end --> <!-- Misc 2 search fields start --> <div id="misc-2-search-fields" class="d-none"> <div class="row mb-2"> <div class="col-xl-8 col-lg-8 col-md-12 col-sm-12 col-xs-12 mt-1"> <div class="row"> <div class="col"> <small><?php echo $reeft_text0120 ?></small> </div> </div> <div class="row"> <div class="col mb-1"> <input id="input-dataLine" type="text" class="form-control"> </div> </div> </div> </div> </div> <!-- Misc 1 search fields end --> <div class="row mt-2"> <div class="col-12"> <div id="data-result" style="width: 100%;"></div> <table id="REEFTvisual_data" class="table table-bordered table-striped table-hover table-fixed"> <thead> <tr class="bg-primary text-white font-weight-bold text-center"> <th class="text-left" title="pk_customer"> <?php echo $reeft_text0252 ?> </th> <th class="text-left" title="cust_active"> <?php echo $reeft_text0253 ?> </th> <th class="text-left" title="cust_number"> <?php echo $reeft_text0254 ?> </th> <th class="text-left" title="cust_name"> <?php echo $reeft_text0255 ?> </th> <th class="text-left" title="cust_group"> <?php echo $reeft_text0256 ?> </th> <th class="text-left" title="product"> <?php echo $reeft_text0251 ?> </th> <th class="text-left" title="description"> <?php echo $reeft_text0245 ?> </th> <th class="text-left" title="integration_version"> <?php echo $reeft_text0243 ?> </th> <th class="text-left" title="fileformat_ext_file"> <?php echo $reeft_text0244 ?> </th> <th class="text-left" title="fileformat_exportterminationfile"> <?php echo $reeft_text0242 ?> </th> <th class="text-left" title="fileformat_numberdecimalseparator"> <?php echo $reeft_text0241 ?> </th> <th class="text-left" title="fileformat_separator"> <?php echo $reeft_text0240 ?> </th> <th class="text-left" title="fileformat_codepage"> <?php echo $reeft_text0239 ?> </th> <th class="text-left" title="program_dir"> <?php echo $reeft_text0238 ?> </th> <th class="text-left" title="input_dir"> <?php echo $reeft_text0237 ?> </th> <th class="text-left" title="output_dir"> <?php echo $reeft_text0236 ?> </th> <th class="text-left" title="error_dir"> <?php echo $reeft_text0235 ?> </th> <th class="text-left" title="done_dir"> <?php echo $reeft_text0234 ?> </th> <th class="text-left" title="log_dir"> <?php echo $reeft_text0233 ?> </th> <th class="text-left" title="export_done_dir"> <?php echo $reeft_text0204 ?> </th> <th class="text-left" title="import_functions"> <?php echo $reeft_text0232 ?> </th> <th class="text-left" title="export_functions"> <?php echo $reeft_text0231 ?> </th> <th class="text-left" title="client_id"> <?php echo $reeft_text0250 ?> </th> <th class="text-left" title="client_secret"> <?php echo $reeft_text0230 ?> </th> <th class="text-left" title="organizationId"> <?php echo $reeft_text0229 ?> </th> <th class="text-left" title="create_user"> <?php echo $reeft_text0228 ?> </th> <th class="text-left" title="create_timestamp"> <?php echo $reeft_text0227 ?> </th> <th class="text-left" title="update_user"> <?php echo $reeft_text0226 ?> </th> <th class="text-left" title="update_timestamp"> <?php echo $reeft_text0225 ?> </th> <th class="text-left" title="company_logo_url"> <?php echo $reeft_text0224 ?> </th> <th class="text-left" title="number_of_exports"> <?php echo $reeft_text0223 ?> </th> <th class="text-left" title="number_of_imports"> <?php echo $reeft_text0222 ?> </th> <th class="text-left" title="ERPname"> <?php echo $reeft_text0221 ?> </th> <th class="text-left" title="ERPdescription"> <?php echo $reeft_text0220 ?> </th> <th class="text-left" title="ERPurl"> <?php echo $reeft_text0219 ?> </th> <th class="text-left" title="json_default_path"> <?php echo $reeft_text0218 ?> </th> <th class="text-left" title="json_gps_default_path"> <?php echo $reeft_text0217 ?> </th> <th class="text-left" title="name"> <?php echo $reeft_text0255 ?> </th> <th class="text-left" title="group"> <?php echo $reeft_text0256 ?> </th> <th class="text-left"><button type="button" id="add-button" title="Shortcut: Alt+F6" onclick="dataAdd('0')" class="d-none btn btn-dark btn-block font-weight-bold"><?php echo $reeft_button_save_01 ?></button></th> <th class="text-left"></th> </tr> </thead> </table> </div> </div> <div class="row"> <div class="col text-left mb-2"> <small><div id="load-time-from-database"></div></small> </div> </div> </div> </div> </div> <!-- Set footer --> <?php include "include/footer.php"; ?> <!-- Set footer --> <!-- ========================================================================== --> <!-- M O D A L S --> <!-- ========================================================================== --> <!-- Modal --> <div class="modal fade" id="customer_maintainModal" tabindex="-1" data-keyboard="false" data-backdrop="static" role="dialog" aria-labelledby="customer_maintainModalLabel" aria-hidden="true"> <div class="modal-dialog modal-xxl"> <div class="modal-content"> <div class="modal-header bg-primary text-white"> <div class="container-fluid pl-0 pr-0"> <div class="row"> <div class="col-3"> <h5 class="modal-title" id="customer_maintainModalLabel"><i class="font-awesome-pseudo-class fa-thin fa-people"></i> <?php echo $reeft_text0138 ?></h5> </div> <div class="col-6 text-center"> <div id="modal-data-not-saved-warning-wrapper" class="border border-danger border-3 rounded d-none"> <div class="h6 font-weight-bold" id="modal-data-not-saved-warning"><?php echo $reeft_text0190 ?></div> <div class="h6 font-weight-bold d-none" id="modal-data-not-saved-warning1"><?php echo $reeft_text0191 ?></div> </div> </div> <div class="col-3 text-right"> <span id="modal-tinyfilemanager-button"></span> <button type="button" title="Shortcut key: Alt+F2" id="button-show-hide-field-names" style="width:150px" class="btn btn-dark btn-sm" onclick="showFieldNames()"><?php echo $reeft_text0216 ?></button> <button type="button" title="Shortcut key: Alt+F3" id="button-show-dir-work-place" style="width:150px" class="btn btn-dark btn-sm" onclick="showDirWorkPlace()"><?php echo $reeft_text0208 ?></button> <button type="button" class="close d-none" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> </div> </div> </div> <div class="container-fluid"> <div class="row"> <div class="col-12 text-right"> <div id="text-show-hide-field-names" style="font-size:0.8em" class="font-weight-bold d-none">DB /table: REEFT_integration.sqlite3 => reeft_customer</div> </div> </div> </div> <div id="main-modal-body" class="modal-body ml-2 mr-2 overflow-class-modal-body"> <input type="text" class="d-none" id="input-current-color-picker"> <input type="text" class="d-none" id="input-current-text-color"> <input type="text" class="d-none" id="input-current-background-color"> <!-- Message if screen is not wide enough --> <div class="container-fluid mt-2 mb-4 d-block d-lg-none"> <div id="general-message-top" class="border border-danger rounded p-2 text-danger font-weight-boldx"><?php echo $reeft_error0040a ?></div> </div> <!-- Message if screen is not wide enough --> <form name="dataForm" id="dataForm"> <!-- Hidden fields start --> <div class="d-none"> </div> <!-- Hidden fields end --> <!-- ============================================================================================================================== --> <!-- Work with input fields - start --> <!-- ============================================================================================================================== --> <div id="main-modal-input-fields"> <div class="row mt-2"> <div class="col-3"> <?php echo $reeft_text0254 ?> <div class="show-field-names-class d-none font-weight-bold">cust_number </div> </div> <div class="col-2"> <input class="form-control read-only-class check-for-input-change-class check-input-in-modal" onkeyup="resetModalMessage()" type="text" id="modal-input-cust_number" name="modal-input-cust_number"> </div> <div class="col-2"> <button type="button" class="btn btn-primary" onclick="createDefaultDirPath()">Create Dirs</button> </div> </div> <div class="row mt-2"> <div class="col-3"> <?php echo $reeft_text0255?> <div class="show-field-names-class d-none font-weight-bold">cust_name</div> </div> <div class="col-4"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-cust_name" name="modal-input-cust_name"> </div> </div> <div class="row mt-2"> <div class="col-3"> <?php echo $reeft_text0256 ?> <div class="show-field-names-class d-none font-weight-bold">cust_group</div> </div> <div class="col-1"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="number" min="1" id="modal-input-cust_group" name="modal-input-cust_group"> </div> <div class="col-8"> <div id="data-result-button-group-modal"></div> </div> </div> <div class="row mt-2"> <div class="col-3"> <?php echo $reeft_text0253a ?> <div class="show-field-names-class d-none font-weight-bold">cust_active</div> </div> <div class="col-1"> <input class="form-control read-only-class check-for-input-change-class" type="text" id="modal-input-cust_active" name="modal-input-cust_active"> </div> <div class="col-2"> <div id="data-result-button-active-inactive"></div> </div> </div> <div class="row mt-2"> <div class="col-3"> <?php echo $reeft_text0244 ?> <div class="show-field-names-class d-none font-weight-bold">fileformat_ext_file</div> </div> <div class="col-2"> <input class="form-control read-only-class check-for-input-change-class" type="text" id="modal-input-fileformat_ext_file" name="modal-input-fileformat_ext_file"> </div> <div class="col-7"> <div id="data-result-button-extension-modal"></div> </div> </div> <div class="row mt-2"> <div class="col-3"> <?php echo $reeft_text0242a ?> <div class="show-field-names-class d-none font-weight-bold">fileformat_exportterminationfile</div> </div> <div class="col-2"> <input class="form-control read-only-class check-for-input-change-class" type="text" id="modal-input-fileformat_exportterminationfile" name="modal-input-fileformat_exportterminationfile"> </div> <div class="col-7"> <div id="data-result-button-fileformat_exportterminationfile-modal"></div> </div> </div> <div class="row mt-2"> <div class="col-3"> <?php echo $reeft_text0241 ?> <div class="show-field-names-class d-none font-weight-bold">fileformat_numberdecimalseparator</div> </div> <div class="col-3"> <?php echo $reeft_text0240 ?> <div class="show-field-names-class d-none font-weight-bold">fileformat_separator</div> </div> <div class="col-3"> <?php echo $reeft_text0239 ?> <div class="show-field-names-class d-none font-weight-bold">fileformat_codepage</div> </div> </div> <div class="row mt-1"> <div class="col-1"> <input class="form-control read-only-class text-center check-for-input-change-class" type="text" id="modal-input-fileformat_numberdecimalseparator" style="font-size:2em;height:1.2em" name="modal-input-fileformat_numberdecimalseparator"> </div> <div class="col-2"> <div id="data-result-button-fileformat_numberdecimalseparator-modal"></div> </div> <div class="col-1"> <input class="form-control read-only-class text-center check-for-input-change-class" type="text" id="modal-input-fileformat_separator" style="font-size:1.8em;height:1.4em" name="modal-input-fileformat_separator"> </div> <div class="col-2"> <div id="data-result-button-fileformat_separator-modal"></div> </div> <div class="col-2"> <input class="form-control read-only-class check-for-input-change-class" type="text" id="modal-input-fileformat_codepage" name="modal-input-fileformat_codepage"> </div> <div class="col"> <div id="data-result-button-code-page-modal"></div> </div> </div> <div class="row mt-2"> <div class="col-4"> <?php echo $reeft_text0237 ?> <div class="show-field-names-class d-none font-weight-bold">input_dir</div> </div> <div class="col-4"> <?php echo $reeft_text0236 ?> <div class="show-field-names-class d-none font-weight-bold">output_dir</div> </div> <div class="col-4"> <?php echo $reeft_text0234 ?> <div class="show-field-names-class d-none font-weight-bold">done_dir</div> </div> </div> <div class="row mt-1"> <div class="col-4"> <input class="form-control read-only-class read-only-dir-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-input_dir" name="modal-input-input_dir"> <input class="form-control read-only-class hide-me-class d-none" type="text" id="modal-input-input_dir_org"> </div> <div class="col-4"> <input class="form-control read-only-class read-only-dir-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-output_dir" name="modal-input-output_dir"> <input class="form-control read-only-class hide-me-class d-none" type="text" id="modal-input-output_dir_org"> </div> <div class="col-4"> <input class="form-control read-only-class read-only-dir-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-done_dir" name="modal-input-done_dir"> <input class="form-control read-only-class hide-me-class d-none" type="text" id="modal-input-done_dir_org"> </div> </div> <div class="row mt-2"> <div class="col-4"> <?php echo $reeft_text0235 ?> <div class="show-field-names-class d-none font-weight-bold">error_dir</div> </div> <div class="col-4"> <?php echo $reeft_text0233 ?> <div class="show-field-names-class d-none font-weight-bold">log_dir</div> </div> <div class="col-4"> <?php echo $reeft_text0238 ?> <div class="show-field-names-class d-none font-weight-bold">program_dir</div> </div> </div> <div class="row mt-1"> <div class="col-4"> <input class="form-control read-only-class read-only-dir-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-error_dir" name="modal-input-error_dir"> <input class="form-control read-only-class hide-me-class d-none" type="text" id="modal-input-error_dir_org"> </div> <div class="col-4"> <input class="form-control read-only-class read-only-dir-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-log_dir" name="modal-input-log_dir"> <input class="form-control read-only-class hide-me-class d-none" type="text" id="modal-input-log_dir_org"> </div> <div class="col-4"> <input class="form-control read-only-class read-only-dir-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-program_dir" name="modal-input-program_dir"> <input class="form-control read-only-class hide-me-class d-none" type="text" id="modal-input-program_dir_org"> </div> </div> <div class="row mt-2"> <div class="col-4"> <?php echo $reeft_text0204 ?> <div class="show-field-names-class d-none font-weight-bold">export_done_dir</div> </div> <div class="col-4"> </div> <div class="col-4"> </div> </div> <div class="row mt-1"> <div class="col-4"> <input class="form-control read-only-class read-only-dir-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-export_done_dir" name="modal-input-export_done_dir"> <input class="form-control read-only-class hide-me-class d-none" type="text" id="modal-input-export_done_dir_org"> </div> <div class="col-4"> </div> <div class="col-4"> </div> </div> <div class="row mt-2"> <div class="col-4"> <?php echo $reeft_text0230 ?> <div class="show-field-names-class d-none font-weight-bold">client_secret</div> </div> <div class="col-4"> <?php echo $reeft_text0250 ?> <div class="show-field-names-class d-none font-weight-bold">client_id</div> </div> <div class="col-4"> <?php echo $reeft_text0229 ?> <div class="show-field-names-class d-none font-weight-bold">organizationId</div> </div> </div> <div class="row mt-2"> <div class="col-4"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-client_secret" name="modal-input-client_secret"> </div> <div class="col-4"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-client_id" name="modal-input-client_id"> </div> <div class="col-4"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-organizationId" name="modal-input-organizationId"> </div> </div> <div class="row mt-2"> <div class="col-3"> <?php echo $reeft_text0224 ?> <div class="show-field-names-class d-none font-weight-bold">company_logo_url</div> </div> <div class="col-3"> <?php echo $reeft_text0221 ?> <div class="show-field-names-class d-none font-weight-bold">ERPname</div> </div> <div class="col-3"> <?php echo $reeft_text0220 ?> <div class="show-field-names-class d-none font-weight-bold">ERPdescription</div> </div> <div class="col-3"> <?php echo $reeft_text0219 ?> <div class="show-field-names-class d-none font-weight-bold">ERPurl</div> </div> </div> <div class="row mt-2"> <div class="col-3"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-company_logo_url" name="modal-input-company_logo_url"> </div> <div class="col-3"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-ERPname" name="modal-input-ERPname"> </div> <div class="col-3"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-ERPdescription" name="modal-input-ERPdescription"> </div> <div class="col-3"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-ERPurl" name="modal-input-ERPurl"> </div> </div> <div class="row mt-2"> <div class="col-3"> <?php echo $reeft_text0218 ?> <div class="show-field-names-class d-none font-weight-bold">json_gps_default_path</div> </div> <div class="col-3"> <?php echo $reeft_text0217 ?> <div class="show-field-names-class d-none font-weight-bold">json_default_path</div> </div> </div> <div class="row mt-2"> <div class="col-3"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-json_gps_default_path" name="modal-input-json_gps_default_path"> </div> <div class="col-3"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-json_default_path" name="modal-input-json_default_path"> </div> </div> <div class="row mt-2"> <div class="col-3"> <?php echo $reeft_text0232 ?> <div class="show-field-names-class d-none font-weight-bold">import_functions</div> </div> <div class="col-3"> <?php echo $reeft_text0231 ?> <div class="show-field-names-class d-none font-weight-bold">export_functions</div> </div> <div class="col-3"> <?php echo $reeft_text0252 ?> <div class="show-field-names-class d-none font-weight-bold">pk_customer</div> </div> </div> <div class="row mt-2"> <div class="col-3"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-import_functions" name="modal-input-import_functions"> </div> <div class="col-3"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-export_functions" name="modal-input-export_functions"> </div> <div class="col-1"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-pk_customer" name="modal-input-pk_customer"> </div> </div> <div class="row mt-2"> <div class="col-3"> <?php echo $reeft_text0251 ?> / <?php echo $reeft_text0245 ?> / <?php echo $reeft_text0243 ?> <div class="show-field-names-class d-none font-weight-bold">product / description / integration_version</div> </div> <div class="col-2"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-product" name="modal-input-product"> </div> <div class="col-4"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-description" name="modal-input-description"> </div> <div class="col-2"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-integration_version" name="modal-input-integration_version"> </div> </div> <div id="dash-board-figures" class="d-none"> <div class="row mt-2"> <div class="col-3"> <?php echo $reeft_text0222 ?> <div class="show-field-names-class d-none font-weight-bold">number_of_imports</div> </div> <div class="col-3"> <?php echo $reeft_text0223 ?> <div class="show-field-names-class d-none font-weight-bold">number_of_exports</div> </div> </div> <div class="row mt-2"> <div class="col-3"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-number_of_imports" name="modal-input-number_of_imports"> </div> <div class="col-3"> <input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-number_of_exports" name="modal-input-number_of_exports"> </div> </div> </div> <hr> <div class="row mt-2"> <div class="col-3"> <?php echo $reeft_text0228 ?> <div class="show-field-names-class d-none font-weight-bold">create_user</div> </div> <div class="col-3"> <?php echo $reeft_text0227 ?> <div class="show-field-names-class d-none font-weight-bold">create_timestamp</div> </div> <div class="col-3"> <?php echo $reeft_text0226 ?> <div class="show-field-names-class d-none font-weight-bold">update_user</div> </div> <div class="col-3"> <?php echo $reeft_text0225 ?> <div class="show-field-names-class d-none font-weight-bold">update_timestamp</div> </div> </div> <div class="row mt-2"> <div class="col-3"> <input class="form-control read-only-class" type="text" id="modal-input-create_user" name="modal-input-create_user"> </div> <div class="col-3"> <input class="form-control read-only-class" type="text" id="modal-input-create_timestamp" name="modal-input-create_timestamp"> </div> <div class="col-3"> <input class="form-control read-only-class" type="text" id="modal-input-update_user" name="modal-input-update_user"> </div> <div class="col-3"> <input class="form-control read-only-class" type="text" id="modal-input-update_timestamp" name="modal-input-update_timestamp"> </div> </div> </div> <!-- ============================================================================================================================== --> <!-- Work with input fields - end --> <!-- ============================================================================================================================== --> <!-- ============================================================================================================================== --> <!-- Work with dirs - start --> <!-- ============================================================================================================================== --> <div id="main-modal-dir-work-place" style="height:600px"> <div class="row mb-1"> <div class="col"> <div class="h5 font-weight-bold" id="main-modal-dir-work-place-customer-information"></div> </div> <div class="col text-right"> <div class="h5 font-weight-bold" id="main-modal-dir-work-place-logo-information"></div> </div> </div> <table id="REEFT-table-work-dirs" class="table table-bordered table-hover"> <thead> <tr class="bg-primary text-white"> <th> </th> <th> <?php echo $reeft_text0193 ?> </th> <th class="text-center"> <?php echo $reeft_text0194 ?> </th> <th class="text-center d-none"> <?php echo $reeft_text0195 ?> </th> <th class="text-center"> <button type="button" id="workdir-button-create-all-dirs" class="btn btn-dark" onclick="createDirsAll()"><?php echo $reeft_button_create_all ?></button> </th> </tr> </thead> <tbody> <tr> <td> <?php echo $reeft_text0237 ?> <div class="show-field-names-class d-none font-weight-bold">input_dir</div> </td> <td> <div class="font-weight-bold" type="text" id="workdir-modal-input-input_dir" name="workdir-modal-input-input_dir"></div> </td> <td class="text-center"> <div id="workdir-modal-input-input_dir-exists"></div> </td> <td class="text-center d-none"> <div id="workdir-modal-input-input_dir-view"></div> </td> <td class="text-center"> <div id="workdir-modal-input-input_dir-create-dir">1</div> </td> </tr> <tr> <td> <?php echo $reeft_text0236 ?> <div class="show-field-names-class d-none font-weight-bold">output_dir</div> </td> <td> <div class="font-weight-bold" type="text" id="workdir-modal-input-output_dir" name="workdir-modal-input-output_dir"></div> </td> <td class="text-center"> <div id="workdir-modal-input-output_dir-exists"></div> </td> <td class="text-center d-none"> <div id="workdir-modal-input-output_dir-view"></div> </td> <td class="text-center"> <div id="workdir-modal-input-output_dir-create-dir">2</div> </td> </tr> <tr> <td> <?php echo $reeft_text0234 ?> <div class="show-field-names-class d-none font-weight-bold">done_dir</div> </td> <td> <div class="font-weight-bold" type="text" id="workdir-modal-input-done_dir" name="workdir-modal-input-done_dir"></div> </td> <td class="text-center"> <div id="workdir-modal-input-done_dir-exists"></div> </td> <td class="text-center d-none"> <div id="workdir-modal-input-done_dir-view"></div> </td> <td class="text-center"> <div id="workdir-modal-input-done_dir-create-dir">3</div> </td> </tr> <tr> <td> <?php echo $reeft_text0235 ?> <div class="show-field-names-class d-none font-weight-bold">error_dir</div> </td> <td> <div class="font-weight-bold" type="text" id="workdir-modal-input-error_dir" name="workdir-modal-input-error_dir"></div> </td> <th class="text-center"> <div id="workdir-modal-input-error_dir-exists"></div> </td> <th class="text-center d-none"> <div id="workdir-modal-input-error_dir-view"></div> </td> <td class="text-center"> <div id="workdir-modal-input-error_dir-create-dir"></div> </td> </tr> <tr> <td> <?php echo $reeft_text0233 ?> <div class="show-field-names-class d-none font-weight-bold">log_dir</div> </td> <td> <div class="font-weight-bold" type="text" id="workdir-modal-input-log_dir" name="workdir-modal-input-log_dir"></div> </td> <th class="text-center"> <div id="workdir-modal-input-log_dir-exists"></div> </td> <th class="text-center d-none"> <div id="workdir-modal-input-log_dir-view"></div> </td> <td class="text-center"> <div id="workdir-modal-input-log_dir-create-dir"></div> </td> </tr> <tr> <td> <?php echo $reeft_text0204 ?> <div class="show-field-names-class d-none font-weight-bold">export_done_dir</div> </td> <td> <div class="font-weight-bold" type="text" id="workdir-modal-input-export_done_dir" name="workdir-modal-input-export_done_dir"></div> </td> <th class="text-center"> <div id="workdir-modal-input-export_done_dir-exists"></div> </td> <th class="text-center d-none"> <div id="workdir-modal-input-export_done_dir-view"></div> </td> <td class="text-center"> <div id="workdir-modal-input-export_done_dir-create-dir"></div> </td> </tr> <tr> <td> <?php echo $reeft_text0238 ?> <div class="show-field-names-class d-none font-weight-bold">program_dir</div> </td> <td> <div class="font-weight-bold" type="text" id="workdir-modal-input-program_dir" name="workdir-modal-input-program_dir"></div> </td> <th class="text-center"> <div id="workdir-modal-input-program_dir-exists"></div> </td> <th class="text-center d-none"> <div id="workdir-modal-input-program_dir-view"></div> </td> <td class="text-center"> <div id="workdir-modal-input-program_dir-create-dir"></div> </td> </tr> </tbody> </table> </div> <!-- ============================================================================================================================== --> <!-- Work with dirs - end --> <!-- ============================================================================================================================== --> </form> </div> <div class="modal-footer-pretty modal-footer"> <div class="container-fluid"> <div class="row"> <div class="col-12 text-left"> <div class="p-1 font-weight-bold text-danger border-top border-dark " id="modal-message"> </div> </div> </div> <div class="row mt-1 mb-2"> <div class="col-3 text-left"> <button type="button" class="btn btn-primary btn-block" id="modal-save-button" onclick="dataSave('*SAVE_AND_CLOSE')"><?php echo $reeft_button_save ?></button> </div> <div class="col-3 text-left"> <button type="button" class="d-none btn btn-primary btn-block" id="modal-save-button-only" onclick="dataSave('*SAVE_ONLY')"><?php echo $reeft_button_save ?></button> </div> <div class="col-3 text-center"> </div> <div class="col-3 text-right"> <button type="button" class="btn btn-primary btn-block" id="buttton-close-modal" onclick="closeModal('customer_maintainModal')"><?php echo $reeft_button_cancel_01 ?></button> </div> </div> </div> </div> </div> </div> </div> <!-- ************************************************ --> <!-- Confirm delete --> <!-- ************************************************ --> <div class="modal fade" id="customer_confirmDeleteModal" tabindex="-1" role="dialog" aria-labelledby="mainLog_confirmDeleteModalLabel" aria-hidden="true"> <div class="modal-dialog modal-xl" role="document"> <div class="modal-content"> <div class="modal-header bg-primary text-white"> <h5 class="modal-title" id="mainLog_confirmDeleteModalLabel"><?php echo $reeft_text0063 ?></h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <form name="dataForm-delete" id="dataForm-delete"> <input type="text" class="d-none" id="confirm-delete-cust_number" name="confirm-delete-cust_number"> </form> <div class="h6"><?php echo $reeft_text0062 ?>: <span class="font-weight-bold" id="confirm-delete-text-cust_number"></span></div> <div class="row"> <div class="col-12 text-left"> <div class="p-1 font-weight-bold text-danger border-top border-dark d-none" id="confirm-delete-modal-message"> </div> </div> </div> </div> <div class="modal-footer"> <div class="container-fluid"> <div class="row mt-1 mb-2"> <div class="col-3 text-left"> <button type="button" onclick="dataDeleteExec()" class="btn btn-primary"><?php echo $reeft_button_delete ?></button> </div> <div class="col-6 text-center"> </div> <div class="col-3 text-right"> <button type="button" class="btn btn-primary" data-dismiss="modal"><?php echo $reeft_button_cancel_01 ?></button> </div> </div> </div> </div> </div> </div> </div> </body> </html>